springmvc中url-pattern /和/*的區別

在使用springmvc時,都會在web.xml中配置一個dispatchservlet,如下:

  1. <listener>    
  2.     <listener-class>    
  3.         org.springframework.web.context.ContextLoaderListener    
  4.     </listener-class>    
  5. </listener>    
  6.     
  7. <!--   Spring MVC Servlet -->    
  8.     
  9. <servlet>    
  10.     <servlet-name>servletName</servlet-name>    
  11.     <servlet-class>    
  12.         org.springframework.web.servlet.DispatcherServlet    
  13.     </servlet-class>    
  14.     <load-on-startup>1</load-on-startup>    
  15. </servlet>    
  16.     
  17. <servlet-mapping>    
  18.     <servlet-name>servletName</servlet-name>     
  19.     <strong><url-pattern>/</url-pattern></strong>    
  20. </servlet-mapping>    

其中/和/*的區別:
< url-pattern > / </ url-pattern >   不會匹配到*.jsp,即:*.jsp不會進入spring的 DispatcherServlet類 。
< url-pattern > /* </ url-pattern > 會匹配*.jsp,會出現返回jsp視圖時再次進入spring的DispatcherServlet 類,導致找不到對應的controller所以報404錯。 


總之,關於web.xml的url映射的小知識:
<url-pattern>/</url-pattern>  會匹配到/login這樣的路徑型url,不會匹配到模式爲*.jsp這樣的後綴型url
<url-pattern>/*</url-pattern> 會匹配所有url:路徑型的和後綴型的url(包括/login,*.jsp,*.js和*.html等)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章