解决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


猜你喜欢
- 一对多查询一对多关联查询是指在查询一方对象的时候,同时将其所关联的多方对象也都查询出来。下面以班级 Classes 与学生 Student
- 原因:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySe
- 本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下运行环境 Android Studio总体效果图一、
- 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 一、静态库和动态库的区别1. 静态函数库这类库的
- 由于我经常下载一些pdf格式的电子书,有的时候一些好书下载下来没有书签,读起来感觉没有整体的感觉,所以决定自己写一个小工具,将特定格式的文本
- 在一些音乐类应用中, 经常会展示随着节奏上下起伏的波纹信息, 这些波纹形象地传达了声音信息, 可以提升用户体验, 那么是如何实现的呢? 可以
- PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启事务;PROPAGATION_REQUIRE
- 一. 异常的定义在《Java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决
- 将自然语言编写的测试用例转换为可执行的测试,可以大大降低需求与开发之间的沟通成本,这是BDD(行为驱动开发)希望达到的效果。SpecFlow
- 1、使用 ctrl+F12打开类中所有方法的界面2、然后直接键盘中输入方法名称或者方法包含的字母,会自动模糊匹配相关方法名补充:idea快速
- # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了# 先看代码:public class Common {public static
- 在学习MyBatis过程中想实现模糊查询,可惜失败了。后来上百度上查了一下,算是解决了。记录一下MyBatis实现模糊查询的几种方式。 数据
- 本文实例讲述了C#实现缩放字体的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Colle
- 本文实例为大家分享了WheelPicker自定义时间选择器控件的具体代码,供大家参考,具体内容如下先上图:使用android自带的DateP
- 由于是多态对象,基类类型的变量可以保存派生类型。 要访问派生类型的实例成员,必须将值强制转换 * 生类型。 但是,强制转换会引发 Invali
- 解锁、唤醒屏幕用到KeyguardManager,KeyguardLock,PowerManager,PowerManager.WakeLo
- Service翻译成中文是服务,熟悉Windows 系统的同学一定很熟悉了。Android里的Service跟Windows里的Servic
- AlarmManager通常用来开发手机闹钟,并且它是一个全局定时器,可在指定时间或指定周期启动其他组件(包括Activity,Servic
- 本文对原文:android实现计步功能初探,计步项目进行了精简,移除了进程服务和计时、守护进程、数据库保存等等,方便扩展功能。本文源码:ht
- 1.元组(Tuple)元组(Tuple)在4.0 的时候就有了,但元组也有些缺点,如: 1)Tuple 会影响代码的