天天看點

Spring MVC DispatcherServlet配置

使用Spring MVC,配置DispatcherServlet是第一步。

DispatcherServlet是一個Servlet,是以可以配置多個DispatcherServlet。

DispatcherServlet是前置控制器,配置在web.xml檔案中的。攔截比對的請求,Servlet攔截比對規則要自已定義,把攔截下來的請求,依據某某規則分發到目标Controller(我們寫的Action)來處理。

“某某規則”:是根據你使用了哪個HandlerMapping接口的實作類的不同而不同。

先來看第一個例子:

<web-app>  
        <servlet>  
            <servlet-name>example</servlet-name>  
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
            <load-on-startup>1</load-on-startup>  
        </servlet>  
        <servlet-mapping>  
            <servlet-name>example</servlet-name>  
            <url-pattern>*.form</url-pattern>  
        </servlet-mapping>  
    </web-app>  
           

 <load-on-startup>1</load-on-startup>是啟動順序,讓這個Servlet随Servletp容器一起啟動。

 <url-pattern>*.form</url-pattern> 會攔截*.form結尾的請求。

 <servlet-name>example</servlet-name>這個Servlet的名字是example,可以有多個DispatcherServlet,是通過名字來區分的。每一個DispatcherServlet有自己的WebApplicationContext上下文對象。同時儲存的ServletContext中和Request對象中,關于key,以後說明。

在DispatcherServlet的初始化過程中,架構會在web應用的 WEB-INF檔案夾下尋找名為[servlet-name]-servlet.xml 的配置檔案,生成檔案中定義的bean。

第二個例子:

<servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath*:/springMVC.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>  
           

指明了配置檔案的檔案名,不使用預設配置檔案名,而使用springMVC.xml配置檔案。

其中<param-value>**.xml</param-value> 這裡可以使用多種寫法

1、不寫,使用預設值:/WEB-INF/<servlet-name>-servlet.xml

2、<param-value>/WEB-INF/classes/springMVC.xml</param-value>

3、<param-value>classpath*:springMVC-mvc.xml</param-value>

4、多個值用逗号分隔