目录
目录
知识点
一、Cookie
1、概念:
客户端会话跟踪技术,将
数据保存在客户端
Cookie对象
2、使用步骤
创建Cookie对象,绑定数据
Cookie cookie=new Cookie(String name,String value);
发送cookie对象
Response.addCookie( Cookie cookie)
获取Cookie ,拿到数据,识别身份
Cookie[] request.getCookies(); -> 在众多cookie中找到本站点发cookie
3、实现原理
*
基于响应头
set-cookie
设置
cookie
和请求头
cookie
实现
3、面试题:
1. 一次可不可以发送多个cookie
a. 可以
b. 可以创建多个cookie对象,只需要在response调用多次addCookie方法
2. cookie在浏览器中保存多长时间!
a. 默认情况下,浏览器关闭,cookie中数据销毁
b. 持久化存储 i. setMaxAge(int seconds) ->cookie存活时间
3. cookie可不可以存中文
a. 在tomcat8之前不允许,但在tomcat8之后 可以
b. 需要中文来进行转码 --> URL 编码 解码
c. 不建议写中文 Cookie 小文本
4. Cookie作用和特点(背)
a. cookie存储在客户端浏览器
b. 浏览器对单个cookie的大小是有限制的(4KB ),对同一域名服务器来最多可以(20个)
c. cookie中一般用于存储少量不敏感的数据
d. 有cookie,下次可以不登录情况下,完成服务器端对客户端身份的识别(免登录 )
二、Session
1、 概念
服务端会话技术,在一次会话中多次请求间共享数据,将数据保存在服务端对象中。
2、原理
session的实现是依赖于cookie的
![](https://img-blog.csdnimg.cn/e2b3f420c4c04856b472075bcc0fa0ab.png)
3 、特点
1.
Session可以存储一次会话中多次请求数据,存储服务器内存
2.
session可以存储任意类型数据(Object) ,任意大小的数据
4、 细节
客户端关闭后,结束会话,服务器不关闭,两次获得session不为同一个。
客户端不关闭,服务器关闭,两次获得session不为同一个
session 在
客户端关闭、
服务器端关闭、
主动销毁、
、session.invalidate()
、
超时,默认情况下30分钟失效 以上几种情况下
被销毁
5、 共享对象
获取HttpSession对象
HttpSession session=request.getSession();
使用HttpSession对象:
void setAtrribute(String name,Object value)
Object getAttribute(String name)
void removeAttribute(String name)
6、面试题:
Session和Requet和ServletContext对象区别(域对象),请你列举出javaWeb域对象
Request 代表一次请求(响应)
Session 代表一次会话 (多次请求和应答)
ServletContext代表一次应用 (多次会话)
ServletContext共享范围大于Session共享范围要大于Request共享范围
(request<Session<ServletContext)
学习心得
※Session和cookie的三种区别
1.
session存储数据在服务器端,Cookie在客户端
2.
session没有数据大小的限制 ,Cookie有 4kb
3.
session数据安全,cookie相对于不安全