1. 程式人生 > >SpringMVC之DispatcherServlet處理請求詳解

SpringMVC之DispatcherServlet處理請求詳解

DispatcherServlet是SpringMVC的核心,用於接收Http請求並且協調SpringMVC各個元件完成請求處理的工作,DispatcherServlet本質也是一個Servlet,需要在web.xml中配置。
如下片段

<servlet>
    <description>spring mvc servlet</description>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class
>
<init-param> <description>spring mvc 配置檔案</description> <param-name>contextConfigLocation</param-name> <param-value> classpath:conf/spring-mvc.xml </param-value> </init-param> <load-on-startup>1</load-on-startup
>
</servlet>

其中,重要的是宣告DispatherServlet的url-pattern匹配模式。

<servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <!--方式一,擴充套件匹配-->
    <url-pattern>*.do</url-pattern>
    <url-pattern>*.html</url-pattern>
    <!--方式二,路徑匹配(精確路徑匹配、最長路徑匹配)-->
<url-pattern>/abc</url-pattern> <url-pattern>/*</url-pattern> <url-pattern>/abc*</url-pattern> <!--方式三,default servlet對映--> <url-pattern>/</url-pattern> </servlet-mapping>

在DisPatcherServlet中攔截到請求後會交給對於對應的@RequestMapping方法進行處理,如果找不到對應的方法,就會forward至defalut Servlet處理。