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  或者 /* 是能够访问到的。

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