jsp网页1.2 (报错Cookie出现非法字符的解决方法)

前言:今天朋友问我cookie报错的问题,我一看报错信息是cookie含有非法字符,特地在网上查了一下cookie中都有哪些非法字符,在此记录一下

1. Cookie的兼容性问题

Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version
0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC
2109文档制定的。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。

2. Cookie的内容

同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version
0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为Cookie的内容。

虽然在Cookie Version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的Cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在Cookie的内容中尽量避免使用这些字符。

3.出现cookie报错的解决办法
我们可以对存入cookie中的值的特殊符号进行替换

例如 字符串 s s.replace(‘特殊字符’,‘_或者其他符号’)

注意:如果是在jsp页面中编写java代码,而且需要多个不同字符替换,不要直接用赋值的方法进行替换,建议直接处理的字符串后面继续添加replace,防止因为指向的字符串对象不同而修改失败的,例如:
正确做法:
String a = s.replace(‘特殊字符1’,‘_或者其他符号’).replace(‘特殊字符2’,‘_或者其他符号’)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值