Java 早期的 MVC 模型主要使用 Servlet 组件。用户的请求首先到达 Servlet,Servlet 作为控制器接收请求,然后调度 Java Bean 读写数据库的数据,最后将结果放到 jsp 中展现给用户。但是,Servlet 组件功能有限,而且与 jsp 的耦合度过高,使得基于 Servlet 组件的 MVC 架构开发很不方便。 SpringMVC 框架是 Spring 为 Web 应用的表现层开发提供的一套完备的解决方案,它实现了对 Servlet 技术的高度封装,通过功能强大的前端控制器 DispatcherServlet 对请求和响应进行统一处理。
⚫ SpringMVC的核心组件 ◼ DispatcherServlet:前端控制器,不需要程序员开发,早期需要在 web.xml配置,如果使用 SpringBoot 技术则不需要配置。用户请求到达前端控制器,首先被 DispatcherServlet 拦截,它是整个流程控制的中心,由它调用其它组件处理用户的请求。DispatcherServlet 有效降低了组件之间的耦合度。 ◼ HandlerMapping:处理器映射器,不需要程序员开发。 HandlerMapping 负责根据用户请求找到 Handler 即控制器。SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,注解方式等。 ◼ Handler(即 Controller):处理器(控制器),需要程序员开发。它就是在开发中要编写的具体业务控制器。实际运行中,由 DispatcherServlet 把用户请求转发给某个 Handler,再由 Handler 对具体的用户请求进行处理。 ◼ HandlAdapter:处理器适配器,不需要程序员开发。通过 HandlerAdapter对处理器进行执行,按照特定规则(HandlerAdapter 要求的规则)去执行Handler(Controller)。 ◼ View Resolver:视图解析器,不需要程序员开发,需要配置。View Resolver负责将处理结果生成 View 视图。它首先把逻辑视图名解析成物理视图名,即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染及处理,通过页面展示给用户。 ◼ View:视图(页面),需要程序员开发。SpringMVC 框架提供了很多的对View 视图类型的支持,包括: jstlView、freemarkerView、pdfView 等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。 总之,SpringMVC 框架具有功能模块划分清晰、分工明确、结构松散、与 Spring框架无缝集成等特点,可以满足各类请求的需要。框架中大部分组件并不需要用户去实现,但是用户应该知道整个框架的基本原理和实现步骤。 SpringMVC 项目的执行过程如下: (1)Tomcat服务器启动,应用被加载。首先根据默认配置信息,实例并初始化DispatcherServlet 核心控制器类的对象; (2)DispatcherServlet类的对象读取默认配置信息,初始化各个控制器类的对象; (3)用户访问,浏览器发送的请求,被 DispatherServlet 捕获,该 Servlet 并不处理请求,而是根据请求的URL,来映射@RequestMapping 中的对外访问虚拟路径,找到相应的控制器类的相应方法; (4)执行映射对应的方法; (5)根据要求返回相应的值, 响应浏览器。 标签:控制器,请求,框架,SpringMVC,视图,介绍,DispatcherServlet,Servlet From: https://www.cnblogs.com/qiqi-yi/p/17277500.html