最近在做一个项目,需要对外暴露两个接口接收别人给的参数,但是有一个问题就是对方的项目是一个老项目,在传参数的时候是将多个字符放在一个参数里面用"|"进行分割,然而他们传参数的时候又没有对"|"进行url编码这个时候他们用这个url访问我们会导致服务器一致报400的错误,而对方如果要改这个东西又很慢很麻烦,所以我百度了很久发现tomcat有一个很坑的设置就是默认会在url中有特殊字符的时候拦截并且报400. 如果我们要关闭这个设定需要到tomcat的conf目录下找到…
当遇到特殊符号传递给后台时,如果不加处理,就会报400的错误,解决办法有两种. 1.前台解决 前台解决的方法就是把这些特殊符号转义,转义之后浏览器和后台都可以识别. //对特殊字符进行转义 encodeURIComponent(str) js中使用encodeURIComponent即可进行自动转义,其他的特殊符号也是一样. 2.后台解决 后台解决很简单,只需要在启动类上加一个配置即可. //解决特殊符号 []报400问题 @Bean public TomcatServletWebServerF…
1.springboot 1.3.5升级1.5.9后 默认使用tomcat 8.5版本而之前用的是tomcat7    get请求报400 异常信息为 The valid characters are defined in RFC 7230 and RFC 3986 2.注意这里说明了,只是get请求.post的请求没问题 -------解决办法 将get请求的参数urlencode一下 param = encodeURIComponent(param); PS: 1.RFC3986文档规定,U…
这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring .spring mvc.hibernate框架,关于统一错误页面在开发的过程中就做过编码,并且一直都很有效,像500,404,403等常规错误码都能得到有效处理, 但是400却不行,而且还暴露tomcat的版本信息,这是很严重的安全漏洞. 先按照网上的说法 将tomcat 8的conf路径下的 catalina.properties 文件进行修改,在最后加入一句:…
nginx+tomcat的网页,在手机上通过浏览器可以正常访问,但是在自己的app的webview中访问就报400.查了访问日志,每次app中访问该页面,tomcat中就出现一个GET null的申请,但不知道怎么来的,真是百思不得其解. 直到在网上找到这个:<记一次nginx+tomcat8请求400错误的坑>,这个跟我的问题应该是一模一样.核心原因就是申请中包含了特殊字符|{}或者空host参数.估摸着浏览器对这种字符进行了转码,而app的webview控件处理过于简单,然后被tomcat…
这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring boot+spring security框架,关于统一错误页面在开发的过程中就做过编码,并且一直都很有效,像500,404,403等常规错误码都能得到有效处理, 但是400却不行,而且还暴露tomcat的版本信息,这是很严重的安全漏洞. 尝试各种方式都不行,后来终于发现是tomcat的版本问题,好像是tomcat7.9以上的版本,都不支持请求链接上带有特殊字符.否…
请求带上花括号等字符,请求无法送达服务端,报错: Failed to load resource: the server responded with a status of 400 () https://blog.csdn.net/Carino_U/article/details/78973120 用springboot开发接口时,SpringBoot URL带有特殊字符([]/{}等),报400错误 这个问题是由于Tomcat的新版本中增加了一个新特性,就是严格按照 RFC 3986规范进行…
前言: 在用IE浏览器时访问tomcat项目时,页面报400错误,后台错误: java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 在网上查得资料时因为Tomcat版本在7以后会对http头进行验证,不符合规范的就会抛出异常 而IE浏览器无法对URL自动转义 解决办法:…
现象: tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig 解决: 把tomcat目录下的lib/servlet-api.jar文件拷贝到$JAVA_HOME/jre/lib/ext目录下,再启动tomcat问题解决…
拦截器报错   The content of element type "interceptor-ref" must match "(param)*".内容元素类型"拦截裁判"必须符合"(参数)*". 当然在网上查了一番,就是拦截器里只能按照特定格式来配置一些信息,只能放那些:"(param|result|interceptor-ref|exception-mapping)*". <package n…