1. 程式人生 > >url-pattern / 和 /* 的區別

url-pattern / 和 /* 的區別

上述問題我也遇到,所以就記錄下來。
總是現象就是:
spring用到forward("/WEB-INF/jsp/*.jsp")
而forward當然是又要經過web.xml的對映的,
然後,在URL匹配時,
 <url-pattern>/</url-pattern>  不會匹配到*.jsp,不會進入spring的DispatcherServlet類
 <url-pattern>/*</url-pattern> 會匹配*.jsp,導致進入spring的DispatcherServlet類,然後去尋找controller,接著找不到對應的controller所以報錯。

試驗了一下,改為 <url-pattern>/</url-pattern> 果然就不會報錯了,唉,還以為不能解決,為此還換成了velocity作為檢視,算了,繼續用velocity吧,簡單點。


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