springboot处理url中带斜杠/\字符的参数报400问题
作者:guoguolifang
这篇文章主要介绍了springboot处理url中带斜杠/\字符的参数报400问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
springboot处理url中带斜杠/\字符的参数报400
1. 启动类中添加
//解决URL中包含%2F(/)的问题 System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true"); //解决URL中包含%5C(\)的问题 System.setProperty("org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH", "true");
2. 新建配置类
@Configuration @EnableWebMvc public class TomcatConfig implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { UrlPathHelper urlPathHelper = new UrlPathHelper(); urlPathHelper.setUrlDecode(false); //总使用完整路径 urlPathHelper.setAlwaysUseFullPath(true); configurer.setUrlPathHelper(urlPathHelper); } }
URL地址中的斜杠/和反斜杠\
1. 斜杠/和反斜杠\的用处:分隔符
Unix使用斜杠作为分隔符;
web应用最新使用在Unix系统
上面,所以目前所有的网络地址都采用 斜杆/
作为分隔符;
windows系统
上的文件浏览器都是用 反斜杠\
作为路径分隔符(由于使用 斜杆/
作为DOS 命令提示符的参数标志)
2. URL中斜杠/和反斜杠\的区别
随着发展,DOS系统
已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响:
出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/
和 反斜杠\
是一样的;
如果代表的是网络文件路径,则必须使用 斜杠/
;
3. 地址的相对路径和绝对路径
- 相对路径:相当于当前文件的路径;
- 绝对路径:你的主页上的文件或目录在硬盘上真正的路径。
4. 其他
./
:代表目前所在的目录。../
:代表上一层目录。
例如:
/SRC/
表示:项目根目录(可以指磁盘根目录,也可以指项目根目录,视实际情况而定)./SRC/
表示:当前目录中的SRC文件夹;../SRC/
表示:当前目录的上一层目录中SRC文件夹;
如果在地址最后加一个斜杠,表示读取改地址下的文件目录;
如果地址最后不是斜杠结尾,表示只读取该文件。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。