springboot处理url中带斜杠/\字符的参数报400问题

 更新时间:2024年01月19日 10:35:15   作者: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文件夹;

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

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

总结

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

相关文章

最新评论