下面关于cookie的实验是正确的吗

发布于 2022-09-07 04:27:27 字数 1277 浏览 19 评论 0

下面的实验可以用简短的几句话概括一下原理吗?目前只知道好像事实就是下面这样的

服务器:Tomcat

项目的根目录的路径:localhost:8080/project
项目中某个Servlet的路径:localhost:8080/project/MyCookie

其中路径localhost:8080/project/MyCookie访问到的是下面的Servlet:

public class MyCookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");

        Cookie[] cookies = request.getCookies();
        for(int i = 0; cookies != null && i < cookies.length;i++){
            //如果在浏览器没有显示虾面的语句,说明没有获取到cookie
            response.getWriter().println("可以获取到cookie  cookies[i].getName():"+cookies[i].getName()+cookies[i].getValue());
        }
    }
}

下面的描述是否是正确的:

1).当第一次直接访问项目的根目录的时候,Tomcat服务器会向浏览器发送Cookie,可以在响应头
    中看到类似的消息头:
 Set-Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023; Path=/project; HttpOnly;

2).当在一定的时间内第二次访问项目的根目录的时候,此时Tomcat服务器不会再向浏览器
    发送Cookie,但是,浏览器会向服务器发送cookie,可以在请求头中看到:
      Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023

3)移除掉浏览器所有的Cookie;

4).当直接访问项目的具体的Servlet时(也就是直接访问localhost:8080/project/MyCookie ),
此时,无论访问此Servlet多少次,都不会获取到Cookie

5)如果你先访问项目的根目录,然后再访问(4)中的Servlet,
此时这个Servlet就可以获取到cookie了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩发小公举 2022-09-14 04:27:27

4 的意思是说获取到sessionid之后再删除 然后再访问 得不到sessionid吗?

tomcat应该是判断请求中如果有sessionid就继续会话 , 没有的话就new 一个新的session 返回sessionid吧
在浏览器把包含sessionid的cookie删了 , 服务器应该会认为是一个新的会话 返回新的sessionid 和路径没有关系

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文