Spring Mvc 一个请求的执行过程


配置文件web.xml


    Spring
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      		
			/WEB-INF/config/spring/spring-servlet.xml
    	    
    
    1
  
  
    Spring
    /.do
  

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)