JAVA WEB 重学day04

Cookie和HttpSession会话

学习目标

  • 能够说出会话的概念
  • 能够说出cookie的概念
  • 能够创建、发送、接收、删除 cookie
  • 能够说出cookie执行原理
  • 能够说出session的概念
  • 能够获取 session 对象、添加、删除、获取 session 中的数据
  • 能够完成登录验证码案例

会话概述

JAVA WEB 重学day04
JAVA WEB 重学day04
JAVA WEB 重学day04

Cookie概述和应用场景

Cookie概述
1.保存在浏览器端的一个小文件就是cookie
2.cookie的作用:用来保存服务器返回的数据(账户密码等)
3.Cookie技术的运行原理

  1. 浏览器第一次访问服务器没有cookie数据
  2. 服务器端创建Cookie对象封装数据并以响应头形式返回给浏览器(需要程序猿操作)
  3. 浏览器接收到cookie之后会将它保存到本地的文件中
  4. 浏览器再次访问服务器时会将本地Cookie数据以请求头的形式携带给服务器
  5. 服务器可以读取到浏览器发送的Cookie数据(需要程序猿操作)

Cookie应用场景
JAVA WEB 重学day04

  1. 使用Cookie保存会话数据的步骤
    1.1 创建Cookie对象:封装要保存的数据: Cookie cookie = new Cookie(“键”,“值”);
    1.2.调用响应对象的方法将Cookie返回给浏览器:response.addCookie(cookie);

  2. Cookie类常用方法
    String getName(); 获取Cookie的名字
    String getValue(); 获得Cookie的值

  3. 返回Cookie的方法
    response.addCookie(cookie);

设置Cookie过期时间
通过cookie对象的setMaxAge方法设置
整数:代表在指定的秒数过期
负数:无效,默认值,浏览器关闭失效
零:删除Cookie
JAVA WEB 重学day04

服务器端读取Cookie数据

  • 目标:读取浏览器发送过来的Cookie数据并输出到浏览器上
  • 解决:调用请求对象的方法获取:Cookies[] request.getCookies();

JAVA WEB 重学day04

设置Cookie的有效路径

Cookie默认的有效路径:当前项目的访问路径
调用Cookie对象的setPath方法设置
JAVA WEB 重学day04

session概述和应用场景

session概述

  1. session是什么:
    是服务器内部的一小块内存区域,底层是Map结构
    每个会话都会有自己的内存区域,不同会话之间的内存区域数据不能共享。

  2. session的作用:用来保存会话过程产生的数据:可以在同一个会话中在多个Servlet之间共享
    3… 浏览器第1次访问没有会话ID

  3. 服务器第一次调用请求对象的getSession方法时就会为该会话分配一小块内存区域并指定一个会话Id

  4. 服务器会将会话ID以Cookie形式返回给浏览器端,浏览器就会将Cookie保存到本地

  5. 浏览器再次访问服务器时就会将会话ID以请求头形式发送给服务器

  6. 服务器根据会话ID就能找到对应的内存区域:就可以对该区域数据进行增删改查操作

session应用场景

1.调用请求对象的getSession方法获取会话域对象
2.调用会话域对象的方法存储键值对数据:setAttribute
JAVA WEB 重学day04
JAVA WEB 重学day04

保存会话ID

  1. 创建Cookie对象:用来封装会话ID Cookie的名字必须是JSESSIONID
  2. 设置过期时间为10分
  3. 返回Cookie给浏览器
    JAVA WEB 重学day04

Session和Cookie的小结

JAVA WEB 重学day04

Servlet三个作用域总结

作用域的创建和销毁

JAVA WEB 重学day04

作用域共同的方法

JAVA WEB 重学day04

如何选择作用域

  • 如果小范围的作用域能够满足需要就使用小范围的作用域
  • 请求域 < 会话域 < 上下文域