Spring MVC的执行流程和常用组件

在这里插入图片描述

目录

  • 1.Spring MVC执行流程
  • 2.Spring MVC常用组件
    • 2.1 DispatcherServlet
    • 2.2 HandlerMapping
    • 2.3 HandlAdapter
    • 2.4 Handler
    • 2.5 ViewResolver

1.Spring MVC执行流程

Spring MVC的执行流程和常用组件_第1张图片

Spring MVC的完整执行流程如下:

  1. 客户端发送请求给DispatcherServlet前端控制器
  2. DispatcherServlet根据请求调用HandlerMapping处理器映射器
  3. HandlerMapping解析请求对应的Handler,返回一个执行链
  4. DispatcherServlet将执行链返回的Handler信息发给HandlerAdapter处理器适配器
  5. HandlerAdapter会调用对应的Handler处理器(即Controller)
  6. Handler执行完成后,会返回一个ModelAndView对象给HandlerAdapter
  7. HandlerAdapter将接收到的ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet根据ModelAndView对象选择合适的ViewResolver视图解析器
  9. ViewResolver根据逻辑View返回实际的view给DispatcherServlet
  10. DispatcherServlet对View进行渲染
  11. 将视图渲染结果返回给浏览器(客户端)

2.Spring MVC常用组件

2.1 DispatcherServlet

前端控制器。⽤户请求到达前端控制器,它就相当于MVC模式中的C,DispatcherServlet是整个流程控制的中⼼,由它调⽤其它组件处理⽤户的请求,DispatcherServlet的存在降低了组件之间的耦合性,系统扩展性提⾼。


<servlet>
    <servlet-name>DispatcherServletservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    
    <init-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath:springmvc-config.xmlparam-value>
    init-param>
    
    <load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
    <servlet-name>DispatcherServletservlet-name>
    <url-pattern>/url-pattern>
servlet-mapping>

2.2 HandlerMapping

HandlerMapping,处理器映射器。根据⽤户的请求地址来找到对应的Handler即控制器,spring mvc提供了不同的映射器实现不同的映射⽅式,分别有:

  • xml配置⽅式
  • 实现接⼝⽅式
  • 注解⽅式

2.3 HandlAdapter

HandlAdapter,处理器适配器。按照特定的规则去执行Handler,通过HandlerAdapter执行处理器。

2.4 Handler

Handler,处理器。Handler 是DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的⽤户请求进⾏处理。由于Handler涉及到具体的⽤户业务请求,所以⼀般情况需要程序员根据业务需求开发Handler。也就是我们常说的控制器类和方法。

//标识此类为控制器类
@Controller
public class JspController {

    @RequestMapping("/index")
    public String firstController(){
    	//返回视图名称
        return "success"; 
    }
}

2.5 ViewResolver

ViewResolver,视图解析器。ViewResolver负责将处理结果⽣成View视图,ViewResolver⾸先根据逻辑视图名解析成物理视图名即具体的页⾯地址,再⽣成View视图对象,最后对View进⾏渲染将处理结果通过页⾯展⽰给⽤户。

 
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     
    <property name="prefix" value="/WEB-INF/jsp/"/>
    
    <property name="suffix" value=".jsp"/>
bean>

你可能感兴趣的:(Java,框架,mvc,spring,java,java-ee)