SpringMVC-DispatcherServlet 工作流程及 web.xml 配置(转)

工作流程:

Web 中,无非是请求和响应;

1. 在 SpringMVC 中,请求的第一站是 DispatcherServlet,充当前端控制器角色;
2.DispatcherServlet 会查询一个或多个处理器映射(handler mapping)并根据请求所携带的 URL 信息进行决策,将请求发送给哪个 SpringMVC 控制器(controller);
3.控制器做两件事:一是将数据打包,二是定义逻辑视图名,然后返回给 DispatcherServlet;
4.DispatcherServlet 通过视图解析器(view resolver)来将逻辑视图名匹配为一个特定的视图实现,它可能是也可能不是 JSP;
5.交付数据模型,以视图形式响应给客户,整个请求流程完成。


web.xml

1.  [欢迎页面,可定义多个,会依次查找可用视图]
2.  
    1.   基本配置包含 Log4jConfigListener 和 ContextLoaderListener,且 log4j 监听器在前,[目前已废除 log4j 监听器,原因还在努力追问](https://www.oschina.net/question/2994440_2207684)
3.   指定上下文配置文件路径,基本配置包含 log4j 和 Spring 配置文件
    1.   指定上下文名称,一般为:名称 + ConfigLocation 后缀,如:contextConfigLocation,不可随意定义,否则指定的配置文件无法加载成功,实际上它是 org.springframework.web.servlet.FrameworkServlet 中的一个成员变量,而 FrameworkServlet 是 DispatcherServlet 的父类,log4jConfigLocation 目前不得而知
    2.   指定上下文路径,如:[classpath](http://www.cnblogs.com/yw0219/p/6025893.html):applicationContext.xml
4.  
    1.  Servlet 名称,可以自定义,但是需要遵守规则: 比如指定为 Spring,那么最好在 classpath 路径中配置 Spring-servlet.xml,否则需要在子元素  特别指出 
    2.   因为要配置 MVC,所以指定为:org.springframework.web.servlet.DispatcherServlet
    3.  [定义容器启动时初始化的配置文件,作用主要是指定自定义配置文件的路径,貌似可以指定多个]
        1.  [contextConfigLocation,不可更改,原因见 3.1] 
        2.  [可以自定义,如:classpath:spring-servlet.xml,如果不定义,那么默认为:classpath:${servlet-name}-servlet.xml,见 4.1]
        3.  [定义为 1,表示启动等级,[参考文章](http://blog.csdn.net/enjoyo/article/details/1761033)]
5.  

    1.   与 4.1 保持一致
    2.   一般定义为 “/”,表示所有请求都通过 DispatcherServlet 来处理
6.  [以字符集为例]

    1.  [自行指定]
    2.  [org.springframework.web.filter.CharacterEncodingFilter]
    3.  
        1.  [encoding,不可更改,它是 CharacterEncodingFilter 中定义的一个成员变量]
        2.  [UTF-8]
7.  

    1.  [与 6.1 保持一致]
    2.  [/* 表示所有请求都经过此过滤器过滤]

示例




      
  
    /WEB-INF/views/home.jsp
  

  
      contextConfigLocation
      classpath:applicationContext.xml
  
       
   log4jConfigLocation   
   classpath:log4j.properties   

  
   
      
        org.springframework.web.util.Log4jConfigListener   
      
 
   
        
          org.springframework.web.context.ContextLoaderListener   
        


      Spring
      org.springframework.web.servlet.DispatcherServlet
      
      
          contextConfigLocation
          classpath:Spring-servlet.xml
      
      1
      
      
          Spring
          
          /
      
    
        
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
      
      
      
        CharacterEncodingFilter
        /*  
      

原文地址:DispatcherServlet 工作流程及 web.xml 配置

你可能感兴趣的:(SpringMVC-DispatcherServlet 工作流程及 web.xml 配置(转))