Code Bye

关于Spring拦截器拦截路径通配符的问题

 

有一个登陆拦截器,肯定要对用户的操作进行登陆状态判断,现在的问题是:

/login    /register    /    这三个请求路径不拦截。

其他的  /admin/add     /admin/remove      /student/homework/add     /teacher/class/remove  这种2层及以上层级的请求路径要进行拦截。

那么请问怎么配置拦截器的 path mapping啊? 

写成这样拦截不到   /*/**

还有,在拦截器里面使用response.sendRedirect(“/login”)  无法跳转到项目的/login请求,地址栏是localhost:8080/login,而实际上应该是跳转到localhost:8080/website/login  这里

以上两个问题,求教大神,叩谢。

你在拦截器中配置呗,不是可以通过request获取请求路径吗,看看是不是需要拦截的路径

40分
response.sendRedirect就如同在浏览器上直接输地址,而你又是使用的/login。有/和没有/是不同的,下面分别给你说明:
带/:表示站点开始,这里你的站点目录就是localhost:8080
不带/:表示从当前文件所在目录下去找。
这下你知道应该怎么写了把

第一个拦截器问题:由于很长时间没有配置过,基本记不起来是怎么弄的,不过你可以看看spring相关的解析源码,然后看他是如何处理路径请求的。以前我也是这么做的。具体你的解析类好像是一个stringmatch结尾的类。当然你也可以试试
/*/*,/**/**,/**/*


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于Spring拦截器拦截路径通配符的问题