• 会话技术!


    会话技术

    实现会话跟踪技术方式:

    • 客户端会话跟踪技术:Cookie
    • 服务端会话跟踪技术:Session

    两者之间的区别:
    cookie是存储在浏览器中的
    session是存储在服务器中的

    对于cookie的操作主要分为两大类,分别是发送cookie和获取cookie

    • 发送cookie
    1. 创建cookie对象并设置数据

    Cookie cookie = new Cookie(“key”,“value”);

    1. 发送cookie到客户端:使用response对象

    response.addCookie(cookie)
    案例:
    (1)创建Maven项目cookie-demo,并在pom.xml添加依赖

    8
    8

    javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp jsp-api 2.2 provided jstl jstl 1.2 taglibs standard 1.1.2 org.apache.tomcat.maven tomcat7-maven-plugin 2.2

    (2)编写Servlet类,名称为AServlet

    @WebServlet(“/aServlet”)
    public class AServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    }

    (3)在Servlet中创建Cookie对象,存入数据,发送给前端

    @WebServlet(“/aServlet”)
    public class AServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //发送Cookie
    //1. 创建Cookie对象
    Cookie cookie = new Cookie(“username”,“zs”);
    //2. 发送Cookie,response
    response.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
    
    • 1
    • 2
    • 3
    • 4

    }

    4)启动测试,在浏览器查看Cookie对象中的值

    访问http://localhost:8080/cookie-demo/aServlet

    chrome浏览器查看Cookie的值
    选中打开开发者工具或者 使用快捷键F12 或者 Ctrl+Shift+I

    • 获取Cookie
    • 获取客户端携带的所有Cookie,使用request对象
    Cookie[] cookies = request.getCookies();
    
    • 1
    • 遍历数组,获取每一个Cookie对象:for
    • 使用Cookie对象方法获取数据

    cookie.getName();
    cookie.getValue();

    在BServlet中使用request对象获取Cookie数组,遍历数组,从数据中获取指定名称对应的值

    @WebServlet("/bServlet")
    public class BServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取Cookie
            //1. 获取Cookie数组
            Cookie[] cookies = request.getCookies();
            //2. 遍历数组
            for (Cookie cookie : cookies) {
                //3. 获取数据
                String name = cookie.getName();
                if("username".equals(name)){
                    String value = cookie.getValue();
                    System.out.println(name+":"+value);
                    break;
                }
            }
    
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doGet(request, response);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    启动测试,在控制台打印出获取的值

    访问`http://localhost:8080/cookie-demo/bServlet

  • 相关阅读:
    R语言手动绘制分类Logistic回归模型的校准曲线(Calibration curve)(3)
    springboot项目做成公共项目
    操作系统题目收录(二)
    [ROS2系列] ORBBEC(奥比中光)AstraPro相机在ROS2进行rtabmap 3D建图
    11.Spring security跨域问题
    【机器学习知识点】【1】二维与三维空间梯度下降微分求解及可视化展示
    二叉排序树的查找、插入、创建和删除
    camtasia 2023怎么导出mp4
    阿里妈妈获得商品详情 API 返回值说明
    Windows bat脚本启动jar包(亲测有效),,监控端口,如果没有,就启动jar包,自动退出cmd框
  • 原文地址:https://blog.csdn.net/qq_53037676/article/details/126120997