首页 / JAVA / 报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1907字,纯文字阅读大概需要3分钟。
内容图文
![报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value](/upload/InfoBanner/zyjiaocheng/849/9106ff107a5343c0a2472ccc572b598d.jpg)
在练习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,自定义输出格式类型。
SimpleDateFormat的参数定义如下
日期格式化类格式参数
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
最后使用SimleDateFormat解决日期中包含空格的问题:
Date date = new Date();
//使用/代替 空格 作为连接 年-月-日/时-秒-分
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss");
Cookie c=new Cookie("LastVisit",fm.format(date));
response.addCookie(c);
最后结果如下
内容总结
以上是互联网集市为您收集整理的报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value全部内容,希望文章能够帮你解决报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。