ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【JavaWeb】session会话跟踪技术

2022-07-24 21:04:08  阅读:140  来源: 互联网

标签:JavaWeb 获取 request 会话 session 服务器 客户端 请求


1.HTTP是无状态的

服务器无法判断两次请求是否是同一个客户端发送的,假如第一次请求是添加商品到购物车,第二次请求是结账,那么就会导致混乱,使用session来解决。

2.session原理

image

3.演示

(1)项目启动,发送第一次请求,获取请求的sessionID

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取session,如果获取不到,就创建一个新的
        HttpSession session = request.getSession();
        System.out.println("session ID:" + session.getId());
    }

控制台打印
image

(2)查看响应头
image

(3)再发送一次请求,查看请求头
image

4.会话跟踪技术

客户端第一次发请求给服务器,服务器获取session,获取不到则创建新的,然后响应给客户端(响应头中)。
下次客户端给服务器发请求时,会把sessionID带给服务器,服务器就能识别客户端了。

5.常用方法

非激活间隔时长表示:多久时间没有操作后session失效

        request.getSession();   //获取当前会话,没有则创建一个新的会话
        request.getSession(true);
        request.getSession(false);      //获取当前会话,没有则返回null,不会创建新的

        session.getId();    //获取sessionID
        session.isNew();    //当前session是否是新的
        session.getMaxInactiveInterval();   //session的非激活间隔时长,默认1800秒
        session.setMaxInactiveInterval();
        session.invalidate();   //强制让会话立即失效

标签:JavaWeb,获取,request,会话,session,服务器,客户端,请求
来源: https://www.cnblogs.com/zhishu/p/16515446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有