Spring Mvc 一个请求的执行过程

配置文件web.xml

<servlet>
    <servlet-name>Spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      		<param-value>
			/WEB-INF/config/spring/spring-servlet.xml
    	    </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Spring</servlet-name>
    <url-pattern>/.do</url-pattern>
  </servlet-mapping>

1,从项目中的web.xml配置文件配置SpringMVC的核心servlet——-DispatcherServlet可以看出,所有以.do结尾的请求url将会被拦截。

2,请求被拦截后会被继承了org.springframework.web.servlet.handler.AbstractHandlerMapping类的处理映射类处理。常用处理映射类有

     

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping

     beanNameUrlHandlerMapping为默认处理器。当-servlet配置文件中没有显示说明使用哪个处理器则使用该处理器。

     DefaultAnnotationHandlerMapping是基于注解的。

经常开发的SpringMvc项目都是基于注解的,所以以DefaultAnnotationHandlerMapping为例       

3,请求的url被DefaultAnnotationHandlerMapping处理后,找到当前已经注册入容器中的bean的被@requestMapping标注的url和handler method处理函数的关系,并关联。

4,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter  该类通过注解在方法级上的@ requestMapping结合DefaultAnnotationHandlerMapping找到逻辑处理方法。

5,SpringMVC通过HandlerAdapter实际调用处理函数,该处理函数的返回值可以是String,ModelAndView,map

6,SpringMvc的视图渲染待完成

    原文作者:Spring MVC
    原文地址: https://blog.csdn.net/registerin1030/article/details/51701570
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞