一、SpringMVC简介
Spring MVC是Spring家族中应用于Web应用的一个模块,是Spring提供的一个基于MVC设计模式的Web开发框架。
二、SpringMVC工作流程
SpringMVC的工作流程:
用户发送HTTP请求
请求交由核心控制器DispatcherServlet处理
核心控制器找到映射器HandlerMapping,映射器看看请求路径是什么,该请求是否交由对应的Action类进行处理
核心控制器再找到适配器HandlerAdopter,看看有无该Action类
将带过来的数据进行转换,格式化等等操作
找到我们的控制器Controller,处理完业务之后返回一个ModelAndView对象
最后通过视图解析器ViewResolver来对ModelAndView进行解析
跳转到对应的JSP/html页面
1.核心控制器DispatcherServlet
DispatcherServlet是SpringMVC框架的核心控制器,是入口,在web.xml里进行引入:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
引入之后需要配置拦截条件,即:符合什么条件的请求会被转发到Spring来处理,这里通过<servlet-mapping>标签来配置:
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
以上配置会把 .do结尾的请求分配到Spring去处理
2. 映射器
我们在web.xml中配置规定只要是.do为后缀的请求都是会经过SpringMVC的核心Servlet。也就是说:映射器就是用于【处理“什么样的请求提交给Action”处理】。
3. 适配器
当我们映射器找到对应的Action来处理请求的时候,核心控制器会让适配器去找该类是否实现了Controller接口。【默认可省略的】
4. 视图解析器
我们把结果封装到ModelAndView以后,SpringMVC会使用视图解析器来对ModelAndView进行解析。【默认可省略的】
5. 控制器
SpringMVC的控制器是单例的,Struts2的控制器是多例的
控制器介绍了两种:
可以实现对参数数据的封装
能够实现跳转到WEB-INF下资源,并不用写处理方法
ParameterizableViewController
AbstractCommandController
参数绑定
我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定
Controller方法默认支持的参数类型有4个,这4个足以支撑我们的日常开发了
HttpServletRequest
HttpServletResponse
HttpSession
Model
Controller方法返回值
Controller方法的返回值其实就几种类型,我们来总结一下
void
String
ModelAndView
redirect重定向
forward转发
校验器
Springmvc使用的是Validator [ˌvælɪˈdeɪʃən]校验规范
RESTful支持
RESTful(Representational State Transfer)软件开发理念,是Web服务的一种新的架构风格(一种思想)。
如果一个架构支持RESTful,那么就称它为RESTful架构