【JavaWeb错误集锦】有关Cookie不支持逗号、空格等特殊符号并报出服务器500错误的解决方案

本文档汇总了在JavaWeb项目中,由于Cookie值包含逗号、空格等特殊符号,引发服务器500错误的问题。通过详细分析原因并提供解决方案,帮助开发者有效避免此类错误。
摘要由CSDN通过智能技术生成

项目场景:

笔者最近在练习Cookie的使用,在新建的CookieDemo1的Servlet中的doPost方法里,尝试实例化一个cookie对象并给它赋值。然后在另一个新建的CookieDemo2的Servlet的doPost方法里使用这个cookie,并在控制台中输出该cookie的键与值。

问题描述:

在Tomcat服务器启动后,在浏览器中访问cookieDemo1这个Servlet,结果直接报出服务器内程序错误

浏览器报错界面


原因分析:

通过查资料了解到现在的cookie不支持逗号、空格等特殊符号,如果非要用,可以使用URL编码的方式来解决这个问题

解决方案:

以想要往cookie中传入空格为例: 在传入的时候,使用URLEcoder.encode()方法将想要传入的字符串编码:
String str_date1 = URLEncoder.encode(str_date, "utf-8");
然后将编码后的值传入cookie中:
cookie.setValue(str_date1);
在读取cookie值之后,也要进行解码:
String value = cookie.getValue();
value = URLDecoder.decode(value,"utf-8");
最后得到我们想要的value。
**全部测试代码:**
package cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值