日期:2014-05-17  浏览次数:20683 次

Cookie问题,懂得进……
我用struts2添加一个Cookie
贴代码:
Java code

System.out.println("开始存储");
Cookie loginName = new Cookie("loginName", userName);
loginName.setMaxAge(60 * 60 * 24); //24小时有效
response.addCookie(loginName);
System.out.println("存储结束");

Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
    System.out.println(cookies[i].getName()+"="+cookies[i].getValue());
}


测试一:
我新增一个Cookie,立马查询Cookie发现没有该cookie的结果
我刷新action,结果就出来了
测试二
我再新增Cookie,再看结果,出现的是上一次的结果,我在jsp页面打印,情况一样
反复测试,结果:
总是慢一拍,结果总是上一次的,说明cookie添加后要等吗?
有人能解答吗?

------解决方案--------------------
没理解清楚response和request关于cookie生命周期的差异。

response中增加cookie,是将这个增加的信息发送给浏览器,这样浏览器才会将其加入本地cookie中,并在下一次请求服务器时同步提交给服务器。

request中的cookie,是浏览器请求服务器时同步提交过来的cookie值。


------解决方案--------------------
探讨

没理解清楚response和request关于cookie生命周期的差异。

response中增加cookie,是将这个增加的信息发送给浏览器,这样浏览器才会将其加入本地cookie中,并在下一次请求服务器时同步提交给服务器。

request中的cookie,是浏览器请求服务器时同步提交过来的cookie值。

------解决方案--------------------
+++解释的很清楚了,request就像还钱,还的是上次的钱,response.addCookie()呢就像借钱.整个过程就是request.getCookies()还上次的钱,response.addCookie()又借给他一次钱.response.addCookie()借给他的钱要等下一次request.getCookies()才能还上.
探讨

没理解清楚response和request关于cookie生命周期的差异。

response中增加cookie,是将这个增加的信息发送给浏览器,这样浏览器才会将其加入本地cookie中,并在下一次请求服务器时同步提交给服务器。

request中的cookie,是浏览器请求服务器时同步提交过来的cookie值。

------解决方案--------------------
这你到baidu上去搜一下吧。会有很多的