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

工作流程:

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

web.xml

  1. [欢迎页面,可定义多个,会依次查找可用视图]
    1. 基本配置包含Log4jConfigListener和ContextLoaderListener,且log4j监听器在前,目前已废除log4j监听器,原因还在努力追问
  2. 指定上下文配置文件路径,基本配置包含log4j和Spring配置文件
    1. 指定上下文名称,一般为:名称+ConfigLocation后缀,如:contextConfigLocation,不可随意定义,否则指定的配置文件无法加载成功,实际上它是org.springframework.web.servlet.FrameworkServlet中的一个成员变量,而FrameworkServlet是DispatcherServlet的父类,log4jConfigLocation目前不得而知
    2. 指定上下文路径,如:classpath:applicationContext.xml
    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,表示启动等级,参考文章]

    1. 与4.1保持一致
    2. 一般定义为“/”,表示所有请求都通过DispatcherServlet来处理
  3. [以字符集为例]
    1. [自行指定]
    2. [org.springframework.web.filter.CharacterEncodingFilter]
      1. [encoding,不可更改,它是CharacterEncodingFilter中定义的一个成员变量]
      2. [UTF-8]

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

示例:

复制代码
 1 
 2 
 7       
 8   
 9     /WEB-INF/views/home.jsp
10   
11 
12   
13       contextConfigLocation
14       classpath:applicationContext.xml
15   
16        
17    log4jConfigLocation   
18    classpath:log4j.properties   
19 
20   
21    
22       
23         org.springframework.web.util.Log4jConfigListener   
24       
25  
26    
27         
28           org.springframework.web.context.ContextLoaderListener   
29         
30 
31 
32       Spring
33       org.springframework.web.servlet.DispatcherServlet
34       
35       
36           contextConfigLocation
37           classpath:Spring-servlet.xml
38       
39       1
40       
41       
42           Spring
43           
44           /
45       
46     
47         
48         CharacterEncodingFilter
49         org.springframework.web.filter.CharacterEncodingFilter
50         
51             encoding
52             utf-8
53         
54       
55       
56       
57         CharacterEncodingFilter
58         /*  
59       
60 
复制代码

 

转载于:https://www.cnblogs.com/liuys635/p/10248311.html

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