• 会话技术!


    会话技术

    实现会话跟踪技术方式:

    • 客户端会话跟踪技术: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

  • 相关阅读:
    Spring aop的简化版本
    基于龙格-库塔法Runge-Kutta的常微分方程的求解matlab仿真
    【Android进阶】5、Android断点调试与LogCat
    Go 语言 设计模式-单例模式
    洛谷P1779 魔鬼杀手
    基于PHP MYSQL的化妆品店会员管理网站的设计与实现毕业设计源码131102
    微服务与领域驱动设计,架构实践总结
    记一次 .NET某工厂报警监控设置 崩溃分析
    计蒜客T1654 数列分段(C语言实现)
    【ECharts】调用接口获取后端数据的四种方法
  • 原文地址:https://blog.csdn.net/qq_53037676/article/details/126120997