SpringMVC简介

---------------------siwuxie095

   

   

   

   

   

   

   

   

SpringMVC 简介

   

   

1、SpringMVC 是应用在 Java EE 三层架构中的 Web 层的框架。和众多

其他 Web 框架一样,它基于 MVC 的设计理念。此外,它采用了松散耦合

可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

   

参考链接:http://www.iteye.com/blogs/subjects/springmvc-explore

   

   

   

2、SpringMVC 通过一套 MVC 注解,让 POJO 无需实现任何接口即可成

为处理请求的控制器。同时,SpringMVC 还支持 RESTful 风格的 URL 请

求。此外,SpringMVC 在数据绑定、视图解析、本地化处理及静态资源处

理上都有许多不俗的表现

   

它在框架设计、扩展性、灵活性等方面全面超越了 Struts、WebWork 等

MVC 框架,从原来的追赶者一跃成为 MVC 的领跑者

   

   

   

3、SpringMVC 相关文档链接

   

1)中文文档:

   

https://linesh.gitbooks.io/spring-mvc-documentation-linesh-translation/content/

   

2)英文文档:

   

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

   

   

   

4、Spring 的体系结构如下,其中:SpringMVC 位于 Web 模块中的 Servlet

   

   

   

注意:SpringMVC 并不是位于 Web 模块中的 Web

   

   

   

5、SpringMVC 是请求驱动,围绕 DispatcherServlet 这个核心进行展开,

DispatcherServlet 是 SpringMVC 的中央处理器,它负责把所有请求分发

到控制器。下图正是 DispatcherServlet 处理请求的工作流

   

   

「DispatcherServlet 应用的正是前端控制器的设计模式」

   

   

   

   

6、具体流程:

   

1用户发送请求到 DispatcherServlet

   

2DispatcherServlet 调用 HandlerMapping 查找 Handler

   

3)HandlerMapping DispatcherServlet 返回 HandlerExecutionChain,

其中包含 Handler 和 HandlerInterceptor[]

   

4DispatcherServlet 调用 HandlerAdapter Handler 进行包装

   

5)HandlerAdapter 执行 Handler(实际上是 Controller),处理业务逻辑

   

6Handler 执行完成,向 HandlerAdapter 返回 ModelAndView,其中包

Model 和 ViewName

   

7)HandlerAdapter DispatcherServlet 返回 ModelAndView

   

8DispatcherServlet 调用 ViewResolver 进行视图解析

   

9)ViewResolver DispatcherServlet 返回 View

   

10DispatcherServlet 调用 View 进行视图渲染,将 Model 中的数据填充

到 Request 域

   

11)View 向 DispatcherServlet 返回渲染后的视图(html/json/xml/…)

   

12DispatcherServlet 返回响应给用户

   

   

参考链接:

   

参考链接1参考链接2参考链接3参考链接4参考链接5参考链接6

   

   

   

   

7、综上所述:

   

整个流程其实就是 DispatcherServlet HandlerMappingHandlerAdapter

ViewResolverView 四者依次交互,并在 HandlerAdapter 处执行 Handler

   

   

   

   

8、SpringMVC 中的名词释义

   

DispatcherServlet

核心分发器、前端控制器

HandlerMapping

处理器映射

HandlerAdapter

处理器适配器

HandlerExceptionResolver

处理器异常解析器

ViewResolver

视图解析器

LocaleResolver

地区解析器

LocaleContextResolver

地区上下文解析器

ThemeResolver

主题解析器

HandlerExecutionChain

处理器执行链

HandlerInterceptor

处理器拦截器

   

注:以上都是 SpringMVC 中的类或接口

   

   

   

9Controller(控制器) 和 Handler(处理器)的异同

   

1)Controller 是 SpringMVC 中的接口(实),Handler 是 SpringMVC 中的概念(虚)

   

2)Controller 一定属于 Handler,但 Handler 却不一定属于 Controller

   

   

   

   

   

   

【made by siwuxie095】

原文地址:https://www.cnblogs.com/siwuxie095/p/8486271.html