Java小技巧:关于Cookie的操作
测试环境:JDK1.5,Tomcat5.5 1。设置Cookie 2。阅读Cookie 3。删除Cookie 4。注意:假设路径结构如下
测试环境:JDK1.5,Tomcat5.5
1。设置Cookie
1 Cookie cookie =新Cookie("key "," value ");
2 cookie . set maxage(60);//设置60秒的生存期。如果设置为负值,则为浏览器进程Cookie(保存在内存中),关闭浏览器时无效。
3 cookie . set path("/test/test 2 ");//设置Cookie路径。如果不是,它是当前路径(对于Servlet,它是在request . getcontextpath()+web . XML中配置的Servlet的url模式路径部分)
4 response . add cookie(cookie);
2.读取Cookie
1//该方法可以读取当前路径和“直接父路径”的所有Cookie对象,如果没有Cookie则返回null。
2 2 cookie[]cookie = request . get cookies();
3.删除Cookie
1 Cookie cookie =新Cookie(“key”,null);
2 cookie . set maxage(0);//设置为0将立即删除此Cookie。
3 cookie . set path("/test/test 2 ");//删除指定路径上的Cookie。如果未设置路径,默认情况下将删除当前路径Cookie。
4 response . add cookie(cookie);
4.注意:假设路径结构如下
/
/测试
/test/test2
/test345
/测试555/测试666
A.具有相同键名(值可以相同或不同)的Cookie可以存在于不同的路径中。
B.删除时,如果当前路径下没有key为“key”的Cookie,则查询所有父路径,检索时执行删除操作(每次只能删除最近父路径的一个Cookie)
一张纸您必须指定与设置cookies以删除和更改cookies时使用的路径相同的路径,并且应为cookies的键名指定路径,无论大小写混合。
即。当键名为小写时,如果当前路径为/test/test2,如果找不到,则查询/test,/test555,/test345,如果找不到,则查询/。(/test555/test666不要查询)
当键名大小写混合或大写时,如果不指定路径,默认删除当前路径,不向上查询。
C.读取cookie时,只能读取直接父路径的cookie。
如果当前路径是/test/test2,那么要读取的密钥是“key”。读取当前路径后,还读取/test,读取/test后,/
D.在做Java web项目时,因为一般的Web服务器(如Tomcat或Jetty)使用上下文来管理不同的Web应用程序,所以每个上下文都有不同的路径,
当一个服务器中有多个Web应用程序时,要小心。不要用Path/设置Cookie,容易误操作。(当然前提是域名相同)
0条评论