SpringMVC
一.SpringMVC简介
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
二.MVC架构模式
(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能
- 控制器(Controller)- 负责转发请求,对请求进行处理。
- 视图(View) - 界面设计人员进行图形界面设计。
- 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
三.SpringMVC优点
![技术分享图片](http://image1.bubuko.com/info/202002/20200225204629764855.png)
四.SpringMVC执行流程
![技术分享图片](http://image1.bubuko.com/info/202002/20200225204630236504.png)
![技术分享图片](http://image1.bubuko.com/info/202002/20200225204630699365.png)
![技术分享图片](http://image1.bubuko.com/info/202002/20200225204631379009.png)
五.SpringMVC基础案例(基于XML)
5.1添加SpringMVC依赖支持
省略Spring框架支持jar
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javaee</groupId>
<artifactId>javaee-api</artifactId>
<version>5</version>
</dependency>
5.2新建一个控制器
public class FirstController implements Controller {
@Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv=new ModelAndView(); //携带数据 mv.addObject("user","123"); //指定跳转的视图 mv.setViewName("/jsp/index.jsp"); return mv; } }
|
5.3将控制器注入到Spring容器当中
<!--注入控制器 id为访问地址--> <bean id="/firstController" class="com.springmvc.controller.FirstController"/>
|
5.4配置web.xml
<web-app> <display-name>Archetype Created Web Application</display-name> <!--配置中央调度器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!--加载时机--> <load-on-startup>1</load-on-startup> </servlet> <!--Servlet映射--> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
|
六. SpringMVC基础案例(注解版)
6.1新建一个控制器
@Controller @RequestMapping("/second") public class SecondController { @RequestMapping("/firstRequest") public ModelAndView firstRequest(){ ModelAndView mv=new ModelAndView(); //携带数据 mv.addObject("user","123"); //指定跳转的视图 mv.setViewName("/jsp/index.jsp"); return mv; }
@RequestMapping("/secondRequest") public ModelAndView secondRequest(){ ModelAndView mv=new ModelAndView(); //携带数据 mv.addObject("user","456"); //指定跳转的视图 mv.setViewName("/jsp/index.jsp"); return mv; } }
|
6.2开启注解扫描以及MVC注解支持(applicationContext.xml)
<!--包扫描器--> <context:component-scan base-package="com.springmvc"/> <!--开启SpringMVC注解支持--> <mvc:annotation-driven/>
|
七. SpringMVC登录案例实现:
7.1 login.jsp页面构建
<form method="post" action="/user/login"> 用户名:<input type="text" name="username"/> 密码:<input type="text" name="password"/> <input type="submit" value="提交"/> </form>
|
7.2创建控制器和控制方法处理用户请求
@Controller @RequestMapping("/user") public class UserController { /** * 登录 * @param username * @param password * @param session * @return */ @RequestMapping("/login") public ModelAndView login(String username, String password, HttpSession session){ ModelAndView mv=new ModelAndView(); if(username.equals("admin")&&password.equals("admin")){ session.setAttribute("user",username); mv.setViewName("/jsp/welcome.jsp"); }else{ mv.setViewName("/jsp/login.jsp"); } return mv; } /** * 退出 * @param session * @return */ @RequestMapping("/logOut") public ModelAndView logout(HttpSession session){ ModelAndView mv=new ModelAndView(); session.removeAttribute("user"); mv.setViewName("/jsp/login.jsp"); return mv; } }
|
7.3开启注解扫描以及MVC注解支持(applicationContext.xml)
<!--包扫描器--> <context:component-scan base-package="com.springmvc"/> <!--开启SpringMVC注解支持--> <mvc:annotation-driven/>
|
7.4配置web.xml
<web-app> <display-name>Archetype Created Web Application</display-name> <!--配置中央调度器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!--加载时机--> <load-on-startup>1</load-on-startup> </servlet> <!--Servlet映射--> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
|
SpringMVC笔记
原文:https://www.cnblogs.com/zhaoyun01/p/12363066.html