DispatcherServlet在web.xml中的配置


DispatcherServlet作用

DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1

 

DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);

3、  通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器)

4、通过ViewResolver解析逻辑视图名到具体视图实现;

5、本地化解析;

6、渲染具体的视图等;

7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

 

从以上我们可以看出DispatcherServlet主要负责流程的控制(而且在流程中的每个关键点都是很容易扩展的)。


DispatcherServletweb.xml中的配置

Java代码 复制代码  收藏代码
  1.   
  2.     chapter2  
  3.     class>org.springframework.web.servlet.DispatcherServletclass>  
  4.     1  
  5.   
  6.   
  7.     chapter2  
  8.     /  
  9.   
    
        chapter2
        org.springframework.web.servlet.DispatcherServlet
        1
    
    
        chapter2
        /
    
 

 

load-on-startup表示启动容器时初始化该Servlet

url-pattern表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

 

DispatcherServlet默认使用WebApplicationContext作为上下文,Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”。

 

DispatcherServlet也可以配置自己的初始化参数,覆盖默认配置:

摘自Spring Reference

参数

描述

contextClass

实现WebApplicationContext接口的类,当前的servlet用它来创建上下文。如果这个参数没有指定, 默认使用XmlWebApplicationContext。

contextConfigLocation

传给上下文实例(由contextClass指定)的字符串,用来指定上下文的位置。这个字符串可以被分成多个字符串(使用逗号作为分隔符) 来支持多个上下文(在多上下文的情况下,如果同一个bean被定义两次,后面一个优先)。

namespace

WebApplicationContext命名空间。默认值是[server-name]-servlet。

 

因此我们可以通过添加初始化参数

 

Java代码 复制代码  收藏代码
  1.   
  2.     chapter2  
  3.     class>org.springframework.web.servlet.DispatcherServletclass>  
  4.     1  
  5.       
  6.         contextConfigLocation  
  7.         classpath:spring-servlet-config.xml  
  8.       
  9.   
    
        chapter2
        org.springframework.web.servlet.DispatcherServlet
        1
        
            contextConfigLocation
            classpath:spring-servlet-config.xml
        
    

 

如果使用如上配置,Spring Web MVC框架将加载“classpath:spring-servlet-config.xml”来进行初始化上下文而不是“/WEB-INF/[servlet名字]-servlet.xml”。


      contextConfigLocation
      
          classpath:spring-common-config.xml,
          classpath:spring-budget-config.xml
      

  org.springframework.web.context.ContextLoaderListener


 

你可能感兴趣的:(web.xml)