使用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、多個值用逗号分隔