DispatcherServlet的url-pattern配置

背景

由於搭建框架不是經常用到,一次搭建以後,會把代碼copy來copy去,在最近學習spring源碼時,搭建springmvc去配置化的測試工程時,對DispatcherServlet的url-pattern配置總是搞不清楚,所以寫篇博客,以供自己參考

 

DispatcherServlet常見的配置

  <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!-- contextConfigLocation配置springmvc加載的配置文件(配置處理器映射器,適配器等等)
       如果不配置,默認加載的是/WEB-INF/[DispatcherServlet 的Servlet 名字]-servlet.xml(springmvc-servlet.xml) -->
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:spring/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>

常見的url-pattern配置有以下三種:

  • 第一種:

*.xxx   以指定後綴結尾的請求都交由DispatcherServlet處理

  • 第二種:

   將會覆蓋容器的default servlet, 凡是在web.xml文件中找不到匹配的URL,它們的訪問請求都將交給該Servlet處理(靜態資源也將會攔截). 所以web.xml沒有配置其他特殊路徑的servlet, 基本上所有的請求都交由DispatcherServlet處理.

/*    錯誤的配置,會攔截*.jsp, *.jspx的請求, 使用這種配置最終要轉發到一個JSP頁面,仍然會由DispatcherServlet, 解析jsp地址, 不能根據jsp頁面找到handler, 會報錯
 

發佈了61 篇原創文章 · 獲贊 48 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章