前言

ssm : mybatis + Spring + SpringMVC MVC三层架构
前提:
JavaSE:认真学习
JavaWeb:认真学习
后期如何学习:
SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力
SpringMVC + Vue + SpringBoot + SpringCloud + Linux
今天我们只学习ssm框架中的最后一个:SpringMVC

一、回顾MVC是什么?

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
  • 是将业务逻辑、数据、显示分离的方法来组织代码。
  • MVC主要作用是降低了视图与业务逻辑间的双向偶合。
  • MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

SSM = JavaWeb做项目;
Mybatis:数据库操作,底层操作
Spring : IOC和AOP
SpringMVC: SpringMVC的执行流程!SpringMVC : SSM框架整合!

二、使用步骤

1.准备的环境

(1)新建一个Maven工程当做父工程!pom依赖!

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>
</dependencies>

(2)添加Web app的支持!
(3)导入servlet 和 jsp 的 jar 依赖

<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version>
</dependency>
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version>
</dependency>

2.编写代码

编写一个Servlet类,用来处理用户的请求

package com.shan.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");String password = req.getParameter("password");String method = req.getParameter("method");if (method.equals("登录")){if (username.equals("zxs")&&password.equals("111")){req.getSession().setAttribute("msg","登录成功");req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);}else {req.getSession().setAttribute("msg","密码不正确或帐户名不正确");req.getRequestDispatcher("index.jsp").forward(req,resp);}}else if (method.equals("注册")){req.getSession().setAttribute("msg","进入到注册页面");req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

欢迎页index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>系统</title></head><body><form method="get" action="/hs">帐户 : <input type="text" name="username"><br>密码 : <input type="password" name="password"><br><input type="submit" name="method" value="登录" >&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="method" value="注册"></form><p style="color: red"> ${msg} </p></body>
</html>

在web-inf下创建一个jsp目录,在jsp里面创建要跳转到的hello.jsp这个页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>servlet</title>
</head>
<body>
${msg}
</body>
</html>

在web.xml中注册Servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.shan.servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hs</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

配置Tomcat,并启动测试
localhost:8080

3.测试


在这里进行一个方法判断,如果你点击了登录就会进行登录判断,若帐户和密码不正确则会显示密码不正确或帐户名不正确

如果你点击了注册按钮则会跳转到注册页面(这里注册功能没有实现,由于是回顾Servlet,不需要数据库,也没去实现注册功能)

如果帐户密码正确则登陆成功

作者有话说

博客创作不易,希望看到这里的读者动动你的小手点个赞,如果喜欢的小伙伴可以一键三连,作者大大在这里给大家谢谢了。

SpringMVC学习01之回顾Servlet相关推荐

  1. SpringMVC自学日志01(回顾servlet)

    MVC:模型(dao,service) 视图(jsp) 控制器(servlet) dao service servlet:转发,重定向. 导入总环境pom.xml依赖 <dependencies ...

  2. 【SpringMVC学习01】宏观上把握SpringMVC框架

    本文已收录到我的github:Java开发宝典 springmvc是一个基于mvc的web框架,是spring框架的一个模块,所以springmvc和spring无需通过中间整合层进行整合.我们先来看 ...

  3. 狂神说SpringMVC学习笔记

    目录 P1.前言 1.回顾MVC 1.1.什么是MVC 1.2.Model1时代 1.3.Model2时代 1.4.回顾Servlet 2.什么是SpringMVC 2.1.概述 2.2.中心控制器 ...

  4. SpringMVC学习(一)———— springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  5. SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)

    文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...

  6. (转)SpringMVC学习(一)——SpringMVC介绍与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...

  7. SpringMVC学习笔记整理

    SpringMVC学习笔记 以下是我整理的SpringMVC学习笔记: 导入jar包 一:springmvc工作流程. ①.     servlet容器初始化一个request请求 ②.     Di ...

  8. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  9. (转)SpringMVC学习(五)——SpringMVC的参数绑定

    http://blog.csdn.net/yerenyuan_pku/article/details/72511611 SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案 ...

最新文章

  1. java 数组的基本操作
  2. linux 文件搜索
  3. fluent二维叶型仿真_ICEM划分嵌套网格之二维圆柱绕流
  4. 北京大力度建设城市绿道,我们身边处处是风景
  5. 《妥协的完美主义:优秀产品经理的实践指南(卷二)》一1.2 交互设计不是横空出世...
  6. Python叠加装饰器,三元表达,生成,调用,递归
  7. php调用c语言库,使用C语言给php写扩展
  8. boost::geometry::strategy::distance用法的测试程序
  9. absolute和relative元素 设置百分比宽高的差异
  10. translucent 属性
  11. Bootstrap3.0学习第十一轮(输入框组)
  12. debian 8 和centos 配置java 环境变量的正确姿态
  13. 电子商务网站优化之策略篇
  14. 初识ProtoBuf(3.18.1)
  15. JavaScript - 获取、修改 title 元素的内容
  16. 计算机鼠标老跳动,用win10系统,鼠标总是乱飞乱跳怎么回事,找到原因及解决方案了...
  17. 最经典最常用的Ecplise快捷键
  18. w10系统老是自动息屏_win10关闭屏幕后黑屏无法唤醒?你一定要学会这几招解决方法...
  19. Win11如何取消任务栏隐藏?Win11取消任务栏隐藏的方法
  20. 举个栗子!Tableau技巧(53):添加跳转按钮实现页面切换

热门文章

  1. 树转化为二叉树_森林转化为二叉树(详解版)
  2. Python入门100题 | 第016题
  3. jupyter notebook中忽略所有警告,让页面更整洁
  4. Python/Anaconda-python2.x代码转为python3.x代码
  5. 【算法数据结构Java实现】递归的简单剖析及时间复杂度计算
  6. 从flink-example分析flink组件(1)WordCount batch实战及源码分析
  7. 数据仓库的架构与设计
  8. 日调度5万亿次,腾讯云微服务架构体系TSF深度解读
  9. MVP介绍以及优化封装
  10. Sklearn(v3)——SVM理论(1)