JAVA WEB 重学day04
Cookie和HttpSession会话
学习目标
- 能够说出会话的概念
- 能够说出cookie的概念
- 能够创建、发送、接收、删除 cookie
- 能够说出cookie执行原理
- 能够说出session的概念
- 能够获取 session 对象、添加、删除、获取 session 中的数据
- 能够完成登录验证码案例
会话概述
Cookie概述和应用场景
Cookie概述
1.保存在浏览器端的一个小文件就是cookie
2.cookie的作用:用来保存服务器返回的数据(账户密码等)
3.Cookie技术的运行原理
- 浏览器第一次访问服务器没有cookie数据
- 服务器端创建Cookie对象封装数据并以响应头形式返回给浏览器(需要程序猿操作)
- 浏览器接收到cookie之后会将它保存到本地的文件中
- 浏览器再次访问服务器时会将本地Cookie数据以请求头的形式携带给服务器
- 服务器可以读取到浏览器发送的Cookie数据(需要程序猿操作)
Cookie应用场景
-
使用Cookie保存会话数据的步骤
1.1 创建Cookie对象:封装要保存的数据: Cookie cookie = new Cookie(“键”,“值”);
1.2.调用响应对象的方法将Cookie返回给浏览器:response.addCookie(cookie); -
Cookie类常用方法
String getName(); 获取Cookie的名字
String getValue(); 获得Cookie的值 -
返回Cookie的方法
response.addCookie(cookie);
设置Cookie过期时间
通过cookie对象的setMaxAge方法设置
整数:代表在指定的秒数过期
负数:无效,默认值,浏览器关闭失效
零:删除Cookie
服务器端读取Cookie数据
- 目标:读取浏览器发送过来的Cookie数据并输出到浏览器上
- 解决:调用请求对象的方法获取:Cookies[] request.getCookies();
设置Cookie的有效路径
Cookie默认的有效路径:当前项目的访问路径
调用Cookie对象的setPath方法设置
session概述和应用场景
session概述
-
session是什么:
是服务器内部的一小块内存区域,底层是Map结构
每个会话都会有自己的内存区域,不同会话之间的内存区域数据不能共享。 -
session的作用:用来保存会话过程产生的数据:可以在同一个会话中在多个Servlet之间共享
3… 浏览器第1次访问没有会话ID -
服务器第一次调用请求对象的getSession方法时就会为该会话分配一小块内存区域并指定一个会话Id
-
服务器会将会话ID以Cookie形式返回给浏览器端,浏览器就会将Cookie保存到本地
-
浏览器再次访问服务器时就会将会话ID以请求头形式发送给服务器
-
服务器根据会话ID就能找到对应的内存区域:就可以对该区域数据进行增删改查操作
session应用场景
1.调用请求对象的getSession方法获取会话域对象
2.调用会话域对象的方法存储键值对数据:setAttribute
保存会话ID
- 创建Cookie对象:用来封装会话ID Cookie的名字必须是JSESSIONID
- 设置过期时间为10分
- 返回Cookie给浏览器
Session和Cookie的小结
Servlet三个作用域总结
作用域的创建和销毁
作用域共同的方法
如何选择作用域
- 如果小范围的作用域能够满足需要就使用小范围的作用域
- 请求域 < 会话域 < 上下文域