前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决response.addCookie()报错

解决response.addCookie()报错

作者头像
别团等shy哥发育
发布2023-02-27 10:11:46
3620
发布2023-02-27 10:11:46
举报
文章被收录于专栏:全栈开发那些事

解决response.addCookie()报错

今天写cookie时遇到错误

代码语言:javascript
复制
java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value

一个不识别的字符[32]出现在了cookie当中 由于tomcat的版本比较高,所以在addCookie时是不能使用空格的 而在ASCII码中32对应的就是空格。只要把后台代码中的空格删掉就可以了。 下面是我的代码:() 解决办法:只需要把时间格式那里的空格去掉,我改成了"-",成功解决

代码语言:javascript
复制
 //处理响应中文的乱码问题
		response.setContentType("text/html;charset=utf-8");
	    //1.获取所有cookie
		Cookie[] cookies=request.getCookies();
	    //2.遍历cookie数组
		String lastTime=null;
		for(int i=0;cookies!=null&&i<cookies.length;i++) {
			//3.获取cookie的名称
			String name=cookies[i].getName();
			if("lastAccess".equals(name)) {
				//获取cookie的时间
			 lastTime=cookies[i].getValue();
			}
		}
		//3.判段是否是首次访问,如果cookie里有时间,就不是第一次访问,否则就是第一次访问
		if(lastTime==null) {
			//第一次访问:
			response.getWriter().print("first");
		}else {//说明不是第一次访问
		//把上次访问的时间回写到浏览器
			response.getWriter().print("lasttime:"+lastTime);
		}
		//第三次,第四次---
		Date date = new Date();
		//下面这个日期格式不能出现空格
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
        String currentTime = format.format(date);
        Cookie cookie = new Cookie("lastAccess",currentTime);
        cookie.setMaxAge(60*60*10);
        response.addCookie(cookie);

参考链接:https://blog.csdn.net/caopengflying/article/details/78965733

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决response.addCookie()报错
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档