url-pattern / 和 /* 的區別
阿新 • • 發佈:2019-02-01
上述問題我也遇到,所以就記錄下來。
總是現象就是:
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等)
總是現象就是:
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等)