操作Cookie时,需要注意路径问题:
设置操作:任何路径都可以设置Cookie,但是有时我们也是用设置进行替换Cookie和删除Cookie(maxAge=0)!
替换:只能由完全相同的路径来操作!父路径,子路径都不可操作!
删除:只能由完全相同的路径来操作!父路径,子路径都不可操作!
读取操作:
子路经的Cookie,父路径无法读取!
父路径的Cookie,子路经可以读取!
例如:拥有如下三个Servlet:
a. http://localhost/项目名/xx/a.do
域名:localhost
路径:/项目名/xx/
b. http://localhost/项目名/xx/b.do
域名:localhost
路径:/项目名/xx/
c. http://localhost/项目名/xx/yy/c.do
域名:localhost
路径:/项目名/xx/yy/
当a存储Cookie时:
a:可以读取,可以替换,可以删除
b:可以读取,可以替换,可以删除
c:可以读取,不能替换,不能删除
当c存储Cookie时:
a:不能读取,不能替换,不能删除
b:不能读取,不能替换,不能删除
c:可以读取,可以替换,可以删除
我们常设置项目中所有Cookie路径为"/"可以保证在所有代码中,Cookie都可以读取,可以替换,可以删除!方法如下:
cookie.setPath("/");