java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot处理url中带斜杠/\字符的参数报400

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. 其他

例如:

如果在地址最后加一个斜杠,表示读取改地址下的文件目录;

如果地址最后不是斜杠结尾,表示只读取该文件。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文