一、结构与流程 

1.1、简介

Web 模块 

Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IOC 容器初始化以及 Web 应用上下文。
Servlet 模块:提供了一个 Spring MVC Web 框架实现。Spring MVC 框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的 JSP 标签,无缝与 Spring 其他技术协作。
WebSocket 模块:提供了简单的接口,用户只要实现响应的接口就可以快速的搭建 WebSocket Server,实现双向通讯。
Portlet 模块:提供了在 Portlet 环境中使用 MVC 实现,类似 Web-Servlet 模块的功能。

SpringMVC 执行流程 

SpringMVC-LMLPHP

1.2、组成结构及作用 

1.2.1、DispatcherServlet 

前端控制器,本质上是个Servlet,Spring MVC 的所有请求都要经过 DispatcherServlet 来统一分发。
Servlet 工作流程 
    1.Web Client 向Servlet容器(Tomcat)发出Http请求。
    2.Servlet容器接收Web Client的请求。
    3.Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
    4.Servlet容器创建一个HttpResponse对象。
    5.Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
    6.HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
    7.HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
    8.Servlet容器把HttpServlet的响应结果传给Web Client。

Servlet 作用域 

SpringMVC-LMLPHP

拦截器 与 过滤器 

SpringMVC-LMLPHP

1.2.2、HandlerMapping 

​处理器映射器,根据请求的 URL 路径,通过注解或 XML 配置,寻找匹配的处理器(Handler)。
作用:根据请求的url查找Handler
servlet初始化时,会对 HandlerMappings、HandlerAdapters等做初始化。
HandlerMapping 初始化时,将映射与 handler(Controller中配置@RequestMapping注解的方法)存到 map 里;处理请求时,从map里取出对应的处理handler。

1.2.3、HandlerAdapter 

处理器适配器,根据映射器找到的处理器(Handler),按特定规则执行相关的处理器(Handler)。
作用:按照特定规则(HandlerAdapter要求的规则)执行Handler。

1.2.4、Handler 

处理器(Controller),执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至 ModelAndView 对象中。
注意:写Handler时按 HandlerAdapter 的要求,适配器才能正确执行Handler。

1.2.5、View Resolver 

视图解析器,通过 ModelAndView 中的 View 将逻辑视图名解析成真正的视图 View(如通过一个 JSP 路径返回一个真正的 JSP 页面)。
作用:进行视图解析,根逻辑视图名解析成真正的视图(view)。

1.2.6.View 

​视图,本身是接口,支持不同的 View 类型(jsp、freemarker、thymeleaf、pdf...)。

10-07 01:10