zoukankan      html  css  js  c++  java
  • Web状态管理

    Web状态管理概述

    原因:HTTP是一个无状态的连接

    无状态:不会记录上次访问的信息,每次的请求都是一次全新的请求。

    Web应用状态管理:4总方式来进行状态跟踪(回话跟踪)

    1. 隐藏表单域

      在源代码中可以查看到,相对不安全。

    2. cookie:(服务器给客户端的小甜点),

      把信息保存在客户端

    3. Session:会话

      把信息保存在服务器中,Session必须要依赖于cookie。

    4. url的重写

      cookie别禁用

    cookie

    服务器在响应请求的时候,将一些数据以“键-值”对的形式通过响应信息保存在客户端。

    特点:

    1. 以键值对的形式保存(只能保存字符串类型)

    2. 服务器通过响应发回给客户端

    3. 保存在客户端

    运行机制

    //1. 客户端发送请求到服务端,服务端创建一个Cookie(键值对),响应发回给客户端
    //浏览器中就保存了一份该服务器下的Cookie
    
        //创建一个cookie
            Cookie cookie = new Cookie("键","值");
            //可以设置多个cookie
    
        //设置cookie的有效期 以秒为单位
            cookie.setMaxAge(3*24*60*60);//三天
            //有效期的设置在添加之前。3*24*60*60可读性更好
    
        //把cookie放到响应中,然后响应给客户端
            resp.addCookie(cookie);
    
    
    //2.当客户端第二次访问该浏览器时,浏览器会先去查看该服务器下的Cookie是否失效
    //如果没有失效,则读取Cookie的内容放到盖茨请求的请求头中,发往服务器。
    //如果已将失效,请求头中不会添加Cookie的内容
    
    
    //3.服务器端会读取客户端发送的请求头中的头部信息来记录 访问的状态。
    
        //得到浏览器传过来的Cookie
            Cookie[] cookies = req.getCookies();
        //判断是否为空
            if(cookies != null){
                for(Cookie cookie : cookies){
                    cookie.getName();//获得cookie的名字
                    cookie.getValue();//获得cookie的值
                    cookie.setValue();//设置cookie的值
                    cookie.getMaxAge();//获得cookie的有效期
                }
            }
    
    //注意:
        //1.Cookie的有效期为一次回话期间
            //一次回话期间 -> 打开浏览器进行访问 到 关闭浏览器。
        //2.每个浏览器只能访问自己访问的cookie,不能访问其他浏览器的。
  • 相关阅读:
    少儿编程之我见
    异常处理:java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
    Maven异常:Could not find artifact
    三种使用分布式锁方案
    技术栈
    给定一个数组,求两数之和等于某个值
    链表--部分知识点整理
    链表
    php序列化和反序列化学习
    data类型的url
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12736133.html
Copyright © 2011-2022 走看看