Spring MVC进阶

358 阅读2分钟

一、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架构