1. 程式人生 > >springMVC中web.xml配置/和/*的區別

springMVC中web.xml配置/和/*的區別

新建一個spring專案發現無法訪問到jsp頁面,靜態html也無法訪問,終於找到答案,原來是spring攔截配置的不對,一直寫的是這種配置,今天發現是不對的,好在找到了答案:)


springmvc
/*

一、我們都知道在基於Spring的Application中,需要在web.xml中增加下面類似的配置資訊:

此處需要特別強調的是 /使用的是/,而不是/,如果使用/,那麼請求時可以通過DispatcherServlet轉發到相應的Action或者Controller中的,但是返回的內容,如返回的jsp還會再次被攔截,這樣導致404錯誤,即訪問不到jsp。所以如果以後發現總是有404錯誤的時候,別忘了check一下 /的配置是否是/*.

二、其實Spring 的Servlet攔截器匹配規則(即 … )都可以自己定義,例:當對映為@RequestMapping(“/user/add”)時

1、攔截.do、.htm, 例如:/user/add.do

這是最傳統的方式,最簡單也最實用。不會導致靜態檔案(jpg,js,css)被攔截。

2、攔截/,例如:/user/add

可以實現現在很流行的REST風格。很多網際網路型別的應用很喜歡這種風格的URL。

弊端:會導致靜態檔案(jpg,js,css)被攔截後不能正常顯示。想實現REST風格,事情就是麻煩一些。後面有解決辦法還算簡單。

3、攔截/*,這是一個錯誤的方式,請求可以走到Action中,但轉到jsp時再次被攔截,不能訪問到jsp。