由于Tomcat的新版本中增加了一个新特性,就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。

比如发送url中有:

MATCH (m)-[r:`品牌`]->(n) where n.name=~".*海尔.*"  RETURN m.name LIMIT 25

修改tomcat配置文件和新建Springboot配置类的方法都不行。

在找了很多教程无果之后,找到了可以解决的办法。

进入SpringBoot的启动类,添加如下代码即可:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {public static void main(String[] args) {SpringApplication.run(Application.class, args);//指定jre系统属性,允许 特殊符号 | 做入参   详情见 tomcat  HttpParser类//System.setProperty("tomcat.util.http.parser.HttpParser.requestTargetAllow","|");}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}/*** 添加这部分代码及其依赖包*/@Beanpublic TomcatServletWebServerFactory webServerFactory() {TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {@Overridepublic void customize(Connector connector) {connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}()=");connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}()=");}});return factory;}
}

然后就可以在前台发送有特殊符号的url了。

参考文章:

https://www.cnblogs.com/jimmyshan-study/p/10818364.html

https://www.cnblogs.com/liugx/p/9451964.html

https://blog.csdn.net/borbore/article/details/79205881?utm_source=blogxgwz7

SpringBoot在前端发送url时,不能识别特殊字符的问题相关推荐

  1. 前端登录时,含有特殊字符被转义的解决方案

    在前端登录时,有的路径中会含有+号,到后台会被转义成空格,在前端发送请求时,使用下面函数进行转义 函数描述 encodeURIComponent(uri)

  2. 转: SMTP 服务器无法识别在 Mac 2011 Outlook 中发送电子邮件时错误。错误 17092...

    在 Mac 2011 Outlook 中发送电子邮件时,您可能会收到下面的错误消息: 无法发送邮件. SMTP 服务器无法识别任何 Outlook 所支持的身份验证方法. 请尝试更改帐户设置中的 SM ...

  3. 前后端分离时ajax发送请求时后端能接送,但是前端的response为空时

    困扰了一天的问题,使用ajax向后端发送请求,后端成功接收并且处理,但是返回前端时在前端调用response时发现后端返回的数据为空 . success:function (response) {if ...

  4. `SpringBoot`+`axios`结合发送`ajax`请求

    SpringBoot+axios结合发送ajax 1.搭建环境 1.1 创建表并添加数据 DROP TABLE t_posts;CREATE TABLE IF NOT EXISTS t_posts(p ...

  5. SpringBoot 基于向量搜索引擎及虹软人脸识别SDK的大规模人脸搜索

    SpringBoot 基于向量搜索引擎及虹软人脸识别SDK的大规模向量数据搜索 文章目录 SpringBoot 基于向量搜索引擎及虹软人脸识别SDK的大规模向量数据搜索 在线环境demo 在线环境说明 ...

  6. 前端拦截url参数xss攻击_闲庭信步聊前端 - 漫谈XSS

    闲庭信步聊前端 - 漫谈XSS 什么是XSS? 众所周知XSS是Cross-Site Scripting(跨站脚本攻击)的简称,但是英文的缩写明明是CSS为什么叫XSS呢?---历史遗留问题,因为CS ...

  7. 前端学HTTP之客户端识别和cookie

    前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...

  8. springboot向前端页面实时打印日志

    springboot向前端页面实时打印日志 加入logback-spring.xml日志配置 <?xml version="1.0" encoding="UTF-8 ...

  9. 发送请求时,postman正常,微信小程序失败?

    问题背景:前端发送一个json对象(字符串格式),后端用springMVC接收.问题是:后端代码不变,前端用postman发送数据时一切正常:但如果前端用微信小程序发送,后端就无法接收到数据(不报异常 ...

  10. Java RTTI运行时类型识别

    RTTI(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型. RTTI提供了以下两个非常有用的操作 ...

最新文章

  1. 批处理命令学习笔记——Start命令
  2. nn.CrossEntropyLoss()
  3. Spring Cloud + Spring Boot + Mybatis + shiro + RestFul + 微服务
  4. 从源码安装GDB-8.1
  5. 京东扳回一城,拼多多该小心了?
  6. ISAPI_Rewrite规则
  7. SQL Server需要监控哪些计数器 ---指尖流淌
  8. Android 系统(234)---Android 代号、标签和版本号
  9. 选数洛谷c语言,洛谷OJ-P1036 选数 题解(递归DFS)
  10. 打开其他软件时,老是弹出Xftp6安装的问题
  11. CVPR 2021 Involution: Inverting the Inherence of Convolution for Visual Recognition
  12. win2008 mysql 群集_win2003服务器下配置 MySQL 群集(Cluster)的方法 -电脑资料
  13. Android system_server无法访问sdcard目录问题记录(Android 4.4 mtk平台)
  14. 段式存储、页式存储及段页式存 详解
  15. STM32F407ZGT6最小系统原理图和PCB
  16. urlencode quote unquote (url 中带中文参数)
  17. Spark GraphX-航班飞行网图分析
  18. ffmpeg编解码应用
  19. K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示
  20. 面对疫情防控的多摄像头社交距离检测方案

热门文章

  1. jquery mobile页面跳转后js不执行的问题
  2. 【小贴士】zepto find元素以及ios弹出键盘可能让你很头疼
  3. 面向接口编程详解---编程实例
  4. 基于核极限学习机(KELM)回归预测 -附代码
  5. matlab保存每次循环的结果
  6. 利用composer搭建PHP框架(四.数据库与缓存)
  7. 指向类对象的指针非空但是部分对象成员不存在原因分析
  8. 无穷分数java_java – 如何NaN和无穷大的浮动或双倍存储在内存?
  9. java如何输入字符串_在java中如何将一个输入了 InputStream转为一个字符串String?...
  10. Android自动化测试【初级篇】-- Monkey测试