首页 > 代码库 > Java 读取不到Cookie中的数据
Java 读取不到Cookie中的数据
电商项目购物车模块,要求用户在非登录情况下也可将商品加入购物车,因此设计如下:
1.如果添加购物车时,用户已经登录,则将购物车数据储存到redis和数据库中,而且数据要保持一致,用户查询时从redis中获取;
2.如果添加购物车时,用户未登录,则将购物车数据添加到cookie中,查询、修改和删除也在cookie中进行;如果用户登录成功,则通知将cookie中的购物车数据持久化到数据库和redis中。
用户未登录时,将购物车加入cookie,代码如下:
此处的cookieKey生成规则是:GoodsCart_goodsId_property,其中property为propertyId:propertyValueId,多个之间以“_”相连,例如 1:23_2:24_3:25。
从cookie中查询购物车信息,代码如下:
但是,查询出来的cookie数组中只有一个cookie,即JSESSSIONID,并没有我存进去的购物车信息,然后在浏览器中查看cookie,发现已经存在,但是就是读取不出来。
解决方案:
经过排查,是因为cookie的特殊字符的原因,“:”是cookie中特殊字符,索引从cookie中读取时出现解析错误;
一个较好的解决办法就是:在将cookie值写入客户端浏览器之前,首先进行URLEncode编码,读取cookie时,进行URLDecode即可。
加入购物车:
查询购物车:
问题完美解决。
Java 读取不到Cookie中的数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。