response中添加cookie时错误记录

本文介绍在Servlet项目中遇到的在Response中添加Cookie时出现IllegalArgumentException异常的原因及解决方法。详细解析了无效字符问题,并提供了编码和替换字符两种解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在学习servlet项目中遇到response中添加cookie时IllegalArgumentException错误


出错代码块下图:

百度错误提示: 

java.lang.IllegalArgumentException: An invalid character [44] was present in the Cookie value

由异常可以看出这个问题属于无效参数问题,在看后面的提示内容 

An invalid character [44] was present in the Cookie value 

cookie中存在无效的字符character [44],所以我们查询ASCII码表可知44表示“,”32表示空格 

所以我们只需要将value中的对应字符替换掉即可,或进行编码

其中替换其他符合很简单,直接替换就ok,下面说下编码情况有:

java中URL 的编码函数:   java.net .URLEncoder.encode(String s);   解码函数:java.net .URLDecoder.decode(String s);
在javascript 中URL 的编码和解码函数:  escape(String s)和unescape(String s) ;
在前台:     var url="test.jsp?param="+escape('this%is#te=st&o k?+/');
在后台编码:String param=request.getParameter("param");   解码:System.out.println(URLDecoder.decode(param,"UTF-8")); 
因此编码修改后的代码块(存的时候编码,取值别忘了解码):






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值