解决SpringMVC * path路径的坑

作者:Aoess丶 时间:2023-03-24 17:02:01 

SpringMVC * path路径的坑

SpringMVC提供了很方便的 * 供我们开发使用。在配置文件中通过<mvc:mapping path="" />进行配置拦截的路径,但是这个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,直接顺序添加多个<mvc:mapping path="" />即可:


<!-- * -->
<mvc:interceptors>
<!-- 多个 * ,顺序执行 -->
<!-- 如果不配置或/**,将拦截所有的Controller -->
<!-- 注意,匹配任意地址时注意是2个“*”号不是1个“*”号 -->
<mvc:interceptor>
 <mvc:mapping path="/aaa/**" />
 <mvc:mapping path="/bbb/**" />
 <bean class="com.test.blog.interceptor.AccessInterceptor">
  <property name="protectedUrls">
   <list>
    <value>edit</value>
    <value>add</value>
   </list>
  </property>
 </bean>
</mvc:interceptor>
</mvc:interceptors>

来源:https://blog.csdn.net/yan245294305/article/details/82775641

标签:SpringMVC, , ,path,路径
0
投稿

猜你喜欢

  • Docker下搭建一个JAVA Tomcat运行环境的方法

    2022-01-13 14:13:29
  • 教你怎么用Java数组和链表实现栈

    2023-10-29 08:13:57
  • java集合迭代器Iterator中的remove陷阱

    2022-06-17 16:11:54
  • C#特性 匿名类型与隐式类型局部变量使用介绍

    2023-09-29 12:42:50
  • Java实战之实现用户登录

    2022-08-03 14:42:55
  • 基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法

    2023-05-04 16:34:50
  • C#中括号强转、as、is区别详解

    2023-05-07 03:04:45
  • 详解Android通知栏沉浸式/透明化完整解决方案

    2023-09-06 03:59:11
  • 详解JAVA类加载机制(推荐)

    2021-08-10 04:43:10
  • 集成apollo动态日志取缔logback-spring.xml配置

    2021-10-15 16:53:19
  • Java实现求解一元n次多项式的方法示例

    2022-08-24 09:03:33
  • Java单元测试工具之JUnit的使用

    2022-09-05 13:20:54
  • Java初学之继承与多态

    2022-11-29 15:13:04
  • 基于Spring的注解@Qualifier小结

    2022-12-20 23:17:50
  • C# 使用相同权限调用 cmd 传入命令的方法

    2023-06-01 23:36:45
  • Spring Cloud Alibaba实现服务的无损下线功能(案例讲解)

    2022-07-05 08:14:25
  • Spring Cloud 系列之服务调用 OpenFeign的实现

    2023-10-20 07:34:00
  • @Configuration与@Component作为配置类的区别详解

    2023-03-09 19:50:15
  • 详解Java中的封装、继承、多态

    2022-09-24 06:26:23
  • C#生成指定范围内的不重复随机数

    2021-10-01 13:49:26
  • asp之家 软件编程 m.aspxhome.com