The valid characters are defined in RFC 7230 and RFC 3986

来源:7-4 新增部门、部门层级树、更新部门接口自测

慕码人5437048

2020-02-08

按照网页<http://localhost:8080/sys/dept/save.json/?name\=技术部\&seq\=1\&remark\=技术部>

relaxedPathChars="[]{}|\^"和relaxedQueryChars="[]{}|\^"的双引号内容应该怎么写?


按照https://coding.imooc.com/learn/questiondetail/34728.html的回答,在 catalina.properties最后加上tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}和org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true还是没能解决问题.

后来在网上搜,解决方案是在server.xml要加relaxedPathChars和relaxedQueryChars两个属性,但显示如下,我想应该是这两个属性的“[]{}|\^”写法有问题,不知道这个想法催不对。老师可以给我解释下吗?

2020-02-08 14:30:35.720 [http-nio-8080-exec-7] INFO  com.mmall.common.HttpInterceptor - request start.  url:http://localhost:8080/sys/dept/save.json/, params:{"name\\":["技术部\\"],"seq\\":["1\\"],"remark\\":["技术部"]}
2020-02-08 14:30:36.100 [http-nio-8080-exec-7] ERROR com.mmall.common.SpringExceptionResolver - unknow exception, url:http://localhost:8080/sys/dept/save.json/
com.mmall.exception.ParamException: {seq=展示顺序不可以为空, name=部门名称不可以为空}


<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URLEncoding="UTF-8" relaxedPathChars="[]{}|\^" relaxedQueryChars="[]{}|\^"/>


写回答

1回答

Jimin

2020-02-08

你好,我感觉你理解的有些问题,其实不需要配置那两个参数,你把那两个参数去掉,然后修改一下请求即可,你把请求里转义符去掉应该就OK了。课程里在控制台演示时转义符是工具自己加上去的,在浏览器上访问时是没有的

0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程