• Serlvet之cookie和session学习


    HTTP 协议

    Web通信需要一种语言,就像中国人讲中文,欧美说英文,Web使用的HTTP协议,也叫超文本协议。

    鸡和鸭.png

    使用HTTP协议的人分为两类:客户端和服务端。请求资源的角色是客户端,提供资源的是服务端。

    通信.png

    HTTP协议是一个很神奇的东西,他只负责说话,至于说了什么他也不知道。所以HTTP是无状态的协议。

    鱼的记忆.png

    会话

    HTTP是没有状态,但是人们是有记忆的,人们想让HTTP记住某些东西,然后就提出几种解决方案:

    1. 隐藏域表单
    2. 重写url
    3. cookie
    4. session

    cookis简介

    cookie是小段的文本信息(微型redis数据库),大小为4kb左右,放在浏览器的内存或者磁盘中,可以设置存活时间,浏览器关闭就消失了。除非保存在磁盘。

    cookies使用场景

    1. 记住用户名和密码
    2. 购物车
    3. 定向广告

    发送cookies

    1. 创建cookies
    2. 设置最大时效
    3. 将Cookie放入到HTTP响应报头
    Cookie c = new Cookie("userID", "a1234");
    c.setMaxAge(60*60*24*7);
    response.addCookie(c)
    

    读取Cookie

    String cookieName = "userID";
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for(Cookie cookie : cookies){
            if(cookieName.equals(cookie.getName())){
                doSomethingWith(cookie.getValue());
            }
        }
    }
    

    session

    存在服务器内存的文本信息(微型redis数据库)

    创建session

    HttpSession session = request.getSession;
    

    HttpSession的API

    pubic Object getAttribute(String name); //根据name 获取属性的值
    
    public void setAttriute(String name, Object value); //设置一个名称和对应的值
    
    public void logout() //将会话从客户端注销
    

    session使用场景

    1. 购物车
    2. 验证码

    cookie与session区别

    cookie session
    存在浏览器 存在服务端
    安全系数低 较安全

    参考:

    << servlet与jsp核心编程 >>

    << servlet和jsp学习指南 >>

    << 图解HTTP >>

  • 相关阅读:
    Python学习笔记之操作yalm
    Python学习笔记之多线程
    Python学习笔记之网络编程
    Python学习笔记之面对象与错误处理
    Python学习笔记之装饰器
    Python学习笔记之内置模块
    Python学习笔记之函数与正则
    PAT甲级1049. Counting Ones
    PAT甲级1045. Favorite Color Stripe
    PAT甲级1034. Head of a Gang
  • 原文地址:https://www.cnblogs.com/chenzhuantou/p/11905498.html
Copyright © 2020-2023  润新知