千家信息网

SpringMVC拦截器如何设置多个path

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍SpringMVC拦截器如何设置多个path,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SpringMVC拦截器path路径的坑SpringMVC提供了很方便
千家信息网最后更新 2025年02月01日SpringMVC拦截器如何设置多个path

这篇文章主要介绍SpringMVC拦截器如何设置多个path,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

SpringMVC拦截器path路径的坑

SpringMVC提供了很方便的拦截器供我们开发使用。在配置文件中通过进行配置拦截的路径,但是这个path在配置的时候有一个小坑

我们都知道在SpringMVC拦截器中的/**是配置全部路径.现在我有一个需求,想要拦截以/user/开头的请求.我的path写为/user/**,这样就能拦截到所有的符号条件的请求.

然后我的项目需求增加了,我在项目中加入了多重权限控制并希望用拦截器去控制它.假设现在有个功能,只开放给管理员,所以我把它的访问路径设为/user/manager/xxxx/xxxx.所以我又加入了一个拦截器,希望拦截路径中存在/manager/的所有的请求.我把path写为/manager/'**,结果却不行.

user的拦截器正常,但是manager的拦截器却不工作,我一度以为是拦截器出现了错误.然后经过一下午检查,我发现我把路径改成/manager/user/xxxx/xxxx就变成了manager拦截器工作但user拦截器不工作.我就确定是path出了问题.

在一次次修改尝试后,我明白了,原来/user/**只适用于以/user/开头的请求,/user/的前面什么都不能有,由于我所有的请求都是/user/开头,所以user的拦截器一直都是可以正常运行的,但是manager拦截器就不同了,我的path写为/manager/**,但是我所有带有/manager/的请求都是前面有/user/的,所以这不满足path路径中的/manager/**.当你要在这个名称的前面加其他的一个名称时,你需要/*/manager/**,如果前面有多个名称,就是/**/manager/**,当然了,由于/**是通配符,所以以manager开头的url也符合这个条件.

SpringMVC拦截器设置多个path

设置多个path

同一个拦截器如果想指定多个path,直接顺序添加多个即可:

                      edit     add          

以上是"SpringMVC拦截器如何设置多个path"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0