什么是springMVC?
- springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
- springmvc是一个基于mvc的web框架。
- springmvc相当于Struts2和spring的整合。
SpringMVC的工作原理
- 首先用户发送请求-->DispatherServlet
- DispatcherServlet-->HandlerMapping(处理器映射器)-->返回给DispatcherServlet
- DispatcherServlet-->HandlerAdapter(处理器适配器)
- HandlerAdapter-->调用具体的处理器(Controller,也叫后端控制器)-->返给ModelAndView
- ModelAndView的逻辑视图名-->ViewRecolver(视图解析器)--> 返回具体的View
- View-->渲染视图
- 返回控制权给DispatcherServlet,由DispatcherServlet返回呼应给用户,流程结束
SpringMVC核心开发步骤
- DispatcherServlet在web.xml中的部署描述,从而拦截请求到springMVC
- HandlerMapping的配置,从而将请求映射到处理器
- HandlerAdapter的配置,从而支持多种类型的处理器
- 处理器(页面控制器)的配置,从而进行功能处理
- ViewResolver的配置,从而将逻辑视图名解析为具体的视图技术
SpringMVC的组件
- 前端控制器(DispatcherServlet)
- 请求到处理器映射(HandlerMapping)
- 处理器适配器(HandlerAdapter)
- 视图解析器(ViewResolver)
- 处理器或页面控制器(Controller)
- 验证器(Validator)
- 命令对象(Command 请求参数绑定到的对象就叫命令对象)
- 表单对象(Form Object提供给表单展示和提交到的对象就叫表单对象)
5. 如何在项目中添加springmvc
5.1添加相关依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- ********************** JSTL依赖 ********************** -->
<!-- 缺少下面这两个jar包会报java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config-->
<!-- 原因:org.springframework.web.servlet.view.JstlView在视图解析时需要这二个jar包-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
5.2 在WEB-INF下添加springmvc-servlet.xml(spring-mvc.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/b