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文件夹;

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

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

总结

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

相关文章

  • JVM性能调优实现原理及配置

    JVM性能调优实现原理及配置

    这篇文章主要介绍了JVM性能调优实现原理及配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • 使用Spark SQL实现读取不带表头的txt文件

    使用Spark SQL实现读取不带表头的txt文件

    这篇文章主要为大家详细介绍了如何使用Spark SQL实现读取不带表头的txt文件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • SpringMVC核心DispatcherServlet处理流程分步详解

    SpringMVC核心DispatcherServlet处理流程分步详解

    这篇文章主要介绍了SpringMVC核心之中央调度器DispatcherServlet的相关知识,包括SpringMVC请求处理过程及SrpingMVC容器和spring IOC容器关系,需要的朋友可以参考下
    2023-04-04
  • springboot整合couchbase集群的步骤

    springboot整合couchbase集群的步骤

    couchbase是一款开源的,分布式的nosql数据库,主要用于分布式缓存和数据存储领域,本文给大家介绍springboot整合couchbase集群的步骤,感兴趣的朋友一起看看吧
    2025-03-03
  • SpringBoot应用能直接运行java -jar的原因分析

    SpringBoot应用能直接运行java -jar的原因分析

    这篇文章主要介绍了SpringBoot应用为什么能直接运行java -jar,首先明确一点,普通jar包是不能直接运行的,比如工具类jar,要能运行,至少得要一个main函数作为入口吧?本文给大家介绍了详细的原因分析,需要的朋友可以参考下
    2024-03-03
  • Java如何找出数组中重复的数字

    Java如何找出数组中重复的数字

    这篇文章主要为大家详细介绍了Java如何找出数组中重复的数字,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Springboot-注解-操作日志的实现方式

    Springboot-注解-操作日志的实现方式

    这篇文章主要介绍了Springboot-注解-操作日志的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Java并发编程之对象的共享

    Java并发编程之对象的共享

    这篇文章主要介绍了Java并发编程之对象的共享,介绍如何共享和发布对象,使它们被安全地由多个进程访问。需要的小伙伴可以参考一下
    2022-04-04
  • C语言中下标与指针的转换以及指向指针的指针的例子

    C语言中下标与指针的转换以及指向指针的指针的例子

    这篇文章主要介绍了C语言中下标与指针的转换以及指向指针的指针的示例,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • 如何解决java.util.concurrent.CancellationException问题

    如何解决java.util.concurrent.CancellationException问题

    这篇文章主要介绍了如何解决java.util.concurrent.CancellationException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论