javeWeb springMvc获取到的参数附带特殊符号,接收后被转义

4 篇文章 0 订阅
1 篇文章 0 订阅

JAVA WEB开发时,在前端通过get / post 方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义。


例如该请求: http://localhost:10001/demo/index.do?name=李四(2)

注:中文()不会出现此种情况


后台就收到的实际 name 值为: 李四(1)

(其实为html中 ( 符号的十进制编码

)其实为html中 ) 符号的十进制编码


方法1:

检查web.xml里是否配置了过滤特殊字符的filter,若不需要可以关掉此filter


方法2:
java中可以使用 org.apache.commons.lang3 包中的 StringEscapeUtils.unescapeHtml4(String str)

方法来进行解码。


方法3:
在controerl接收的参数前加上@RequestBody注解,具体可百度@RequestBody的用法,

此方法局限性比较大

例如 :

@RequestMapping(value = “/index.do”)
@ResponseBody
public String addQbzl(HttpSession session, @RequestBody String name) {

}



前端则需要 声明dataType 和 contentType,传递的参数并用JSON.stringify()转为json字符串

$.ajax({
url: CONTEXTPATH + “/index.do”,
type: ‘POST’,
dataType: ‘JSON’,
contentType : ‘application/json’,
data: JSON.stringify(Data),

success: function (data) {

}
)}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值