Servlet_9th_Cookie共享与URL的关系
来源:互联网 发布:长沙软件开发公司排名 编辑:程序博客网 时间:2024/06/03 17:53
一、Cookie共享与URL的关系
同一个浏览器,同一个窗口访问同一个服务器下的servletA和servletB,servletB可能无法读取servletA产生的cookie信息,这涉及cookie共享与URL的关系。
通过两个实验来理解一下cookie共享与URL的关系:
1、实验一:
1)在前一篇博文的基础上,将SetCookies.java中的@WebServlet("/SetCookies")更改为:
ShowCookies.java的url地址不要变动。
2)为保证实验结果准确可靠,重启服务器。
3)将IE浏览器的cookies缓存数据清空(清除本地cookie):
工具 -- Internet选项 -- 常规 -- 浏览历史记录 -- 删除 -- Cookie和网站数据 -- 删除,点击确定退出。
4)将所有IE浏览器页面关闭(清除内存中的cookie)。
5)新开一个IE浏览器窗口,访问:http://localhost:8080/TestServlet/Servlet/SetCookies
页面效果:
注意不要点超链接,超链接的链接地址不是我们想要的,
此时访问会链接到http://localhost:8080/TestServlet/Servlet/ShowCookies,显然会报404。
6)在当前窗口地址栏输入:http://localhost:8080/TestServlet/ShowCookies
页面效果:
好像没有任何的cookie,说明req.getCookies()返回的是个null而不是cookie数组。
2、实验二:
1)将SetCookies.java中的@WebServlet("/Servlet/SetCookies")还原为:
ShowCookies.java的url地址改为:
2)重启服务器。
3)同样将IE浏览器中的cookies删除干净,并将所有IE浏览器页面关闭。
4)新开一个IE浏览器窗口,访问:http://localhost:8080/TestServlet/SetCookies
5)在当前窗口地址栏输入:http://localhost:8080/TestServlet/Servlet/ShowCookies
现在ShowCookies可以通过req.getCookies()获取到所有cookie。
总结:
一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到(即共享)。
这里的路径指的是URL,而非真实的文件路径。
理清思路:
①SetCookies产生了cookies,并将cookies放到客户端的硬盘或内存中。
②ShowCookies读取cookies。
③如果SetCookies的路径是/Servlet/SetCookies,即在localhost:8080/WebApp/Servlet/路径下,
而ShowCookies的路径是/ShowCookies,即在localhost:8080/WebApp/路径下,
也就是说后者和前者不在同一路径下,后者也不是前者的子路径,所以后者无法访问到前者产生的cookie。
④如果SetCookies的路径是/SetCookies,即在localhost:8080/WebApp/路径下,
而ShowCookies的路径是/Servlet/ShowCookies,即在localhost:8080/WebApp/Servlet/路径下,
同一个浏览器,同一个窗口访问同一个服务器下的servletA和servletB,servletB可能无法读取servletA产生的cookie信息,这涉及cookie共享与URL的关系。
通过两个实验来理解一下cookie共享与URL的关系:
1、实验一:
1)在前一篇博文的基础上,将SetCookies.java中的@WebServlet("/SetCookies")更改为:
ShowCookies.java的url地址不要变动。
2)为保证实验结果准确可靠,重启服务器。
3)将IE浏览器的cookies缓存数据清空(清除本地cookie):
工具 -- Internet选项 -- 常规 -- 浏览历史记录 -- 删除 -- Cookie和网站数据 -- 删除,点击确定退出。
4)将所有IE浏览器页面关闭(清除内存中的cookie)。
5)新开一个IE浏览器窗口,访问:http://localhost:8080/TestServlet/Servlet/SetCookies
页面效果:
注意不要点超链接,超链接的链接地址不是我们想要的,
此时访问会链接到http://localhost:8080/TestServlet/Servlet/ShowCookies,显然会报404。
6)在当前窗口地址栏输入:http://localhost:8080/TestServlet/ShowCookies
页面效果:
好像没有任何的cookie,说明req.getCookies()返回的是个null而不是cookie数组。
2、实验二:
1)将SetCookies.java中的@WebServlet("/Servlet/SetCookies")还原为:
ShowCookies.java的url地址改为:
2)重启服务器。
3)同样将IE浏览器中的cookies删除干净,并将所有IE浏览器页面关闭。
4)新开一个IE浏览器窗口,访问:http://localhost:8080/TestServlet/SetCookies
5)在当前窗口地址栏输入:http://localhost:8080/TestServlet/Servlet/ShowCookies
现在ShowCookies可以通过req.getCookies()获取到所有cookie。
总结:
一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到(即共享)。
这里的路径指的是URL,而非真实的文件路径。
理清思路:
①SetCookies产生了cookies,并将cookies放到客户端的硬盘或内存中。
②ShowCookies读取cookies。
③如果SetCookies的路径是/Servlet/SetCookies,即在localhost:8080/WebApp/Servlet/路径下,
而ShowCookies的路径是/ShowCookies,即在localhost:8080/WebApp/路径下,
也就是说后者和前者不在同一路径下,后者也不是前者的子路径,所以后者无法访问到前者产生的cookie。
④如果SetCookies的路径是/SetCookies,即在localhost:8080/WebApp/路径下,
而ShowCookies的路径是/Servlet/ShowCookies,即在localhost:8080/WebApp/Servlet/路径下,
即后者位于前者的子路径下,所以后者能访问前者产生的cookie。
0 0
- Servlet_9th_Cookie共享与URL的关系
- uri和url的定义与关系
- URI、URL与URN的关系
- [django]url请求与数据库连接池的共享问题
- URI与URL的关系,URI的格式
- js 的url中文编码与php中文的url编码关系测试
- 共享URL
- url与url的区别
- 基于注解的Spring MVC的URL与Controller映射关系提取的实现分析
- 基于注解的Spring MVC的URL与Controller映射关系提取的实现分析
- 基于注解的Spring MVC的URL与Controller映射关系提取的实现分析
- django中url的基本含义、配置与视图的关系
- spring mvc中redirect/forward:url与拦截器的关系
- PHP中rawurlencode将字符串编码成URL专用格式时与页面编码的关系
- spring mvc中redirect/forward:url与拦截器的关系
- spring mvc中redirect/forward:url与拦截器的关系
- spring mvc中redirect/forward:url与拦截器的关系
- spring mvc中redirect/forward:url与拦截器的关系
- B
- flask笔记:14:获取所有post或者get请求参数
- cocos2d-x ui::ScrollView和ScrollView的使用
- Iterator和ListIterator的区别
- Servlet-使用RequestDispathcher调派请求
- Servlet_9th_Cookie共享与URL的关系
- 28:Maximum sum
- 4.17
- JSP jsp:useBean介绍
- WIN7_LDR_DATA_TABLE_ENTRY结构(x86 x64)
- 商品展示案例
- Eclipse 安装 Red5 插件
- Redis学习总结_2_对象
- HandsFree OpenRE编译及烧录