在使用springmvc時,都會在web.xml中配置一個dispatchservlet,以下:html
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- Spring MVC Servlet --> <servlet> <servlet-name>servletName</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>servletName</servlet-name> <strong><url-pattern>/</url-pattern></strong> </servlet-mapping>
其中/和/*的區別:
< url-pattern > /* </ url-pattern > 會匹配*.jsp,會出現返回jsp視圖時再次進入spring的DispatcherServlet 類,致使找不到對應的controller因此報404錯。 web
總之,關於web.xml的url映射的小知識:
<url-pattern>/</url-pattern> 會匹配到/login這樣的路徑型url,不會匹配到模式爲*.jsp這樣的後綴型url
<url-pattern>/*</url-pattern> 會匹配全部url:路徑型的和後綴型的url(包括/login,*.jsp,*.js和*.html等)spring