springMvc integrated with springSecurity 常見問題

 springMVC在web.xml中配置url-pattern時,配置成/*.do形式,無論controler層中@RequestMapping註解成*或者是*.do形式時都會報404錯誤,正解是url-pattern配置成 / 形式或*.do形式。和springSecurity集成的時候security在web.xml中配置內容的url-pattern配置成/*,/login是security認證的默認路徑,如果業務中也有/login接口,可用/login + 常用動作詞訪問自定義接口(eg: /login.do,  注意一定不要定義成/login.jsp這種加文件擴展名形式)。雖然以上述方式配置也會遇到一個問題,當訪問應用默認頁面時(請求地址只爲域名,eg:www.baidu.com),不會調轉到默認頁面,提示404找不到資源。 有資料顯示當url-pattern配置成 /  形式時會匹配 形如 login、login.do、login.action等非文件形式的url, /*形式則會匹配所有url,除了 / 包含的url外還包括文件形式的url (eg: login.jsp)。


請求url和controller層RequestMapping匹配的時候,匹配規則如下: 瀏覽器url: /login.do匹配層的login.do或者login,controller層同時存在login.do和login時優先匹配login.do。瀏覽器url爲/login,controller層只存在/login.do(不存在/login)時,提示404找不到資源錯誤。


配置url-pattern爲/rest/* 在controller裏面配置/rest/login 訪問/rest/login 結果是訪問不到的,用/rest/rest/login能夠訪問到。url-pattern配置成 /rest/login  或者 /* 是能夠訪問到的。

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