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

在练习cookie知识点时,新建一个cookie对象,想将日期设置为cookie对象的value值时,出现以下问题

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

IllegalArgumentException:非法参数异常

character [32]:ASCII码代表空格的意思

从网上搜索得知,Tomcat9.0版本以上,对Cookie对象设置value值时,包含空格字符便会抛出此异常。具体原因以及还有哪些字符不能包含还未清楚。所以需要修改日期的格式。

修改前的代码:

Cookie c=new Cookie("LastVisit",date.toLocaleString());
response.addCookie(c);

由于toLocaleString()方法被抛弃,然后修改成如下

Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
Cookie c = new Cookie("LastVisit",df.format(date));
response.addCookie(c);

Java官方推荐使用DateFormat对日期类型Date进行格式化,常见的日期格式类型可通过DateFormat中的方法获得。但是由于DateFormat的自带方法得到的格式(显示时分秒)都包含空格,所以使用继承了DateFormat的子类SimpleDateFormat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值