会话技术
当用户打开浏览器访问了很多连接最后关闭了浏览器。这就是一个会话。
Cookie技术
Cookie是客户端技术,程序将用户的数据以Cookie的方式保存在各自的浏览器当中,当用户使用浏览器访问服务器的web资源的时候,就会带着各自的数据过去,这样web服务器处理的就是用户各自的数据
- 记录用户上次访问的时间流程图
- cookie的分类
1.默认级别的Cookie
默认情况下只要关闭浏览器Cookie也会被销毁。
2.持久级别的Cookie
有有效时间的Cookie,将Cookie持久化到硬盘。再打开浏览器的时候会先加载硬盘当中保存的cookie。从而cookie数据就不会丢失
-Cookie使用的细节
1.一个Cookie只用标识一种信息,至少含有一个表示信息的名称和值。
2.一个web站点可以给一个浏览器发送多个Cookie,一个web浏览器可以存储多个web站点的Cookie。
3.浏览器存放的Cookie的大小和个数是有限制的。
4.默认情况下是一个会话级别的Cookie。
5.需要手动删除持久性的Cookie,可以将Cookie的有效时长设置为0,删除的时候必须注意Path必须保持一直,否则无法删除
Session技术
Session是服务器端的技术,每个浏览器都有唯一的ID,利用这个技术,服务器在运行的时候会为每一个用户创建一个独享的Session对象。由于Session为用户浏览器独享,所有用户在访问服务器的时候,可以把各自的数据放在各自的Session当中,当用户再次访问服务器的web资源的时候,web资源再从用户各自的Session取出数据为用户服务
为什么又Cookie还要使用Session
Cookie局限性:
Cookie保存的数据是有个数和大小限制的
数据是保存在客户端浏览器(相对不是很安全)
Session
session没有个数和大小的限制
数据保存在服务器上,相对比较安全
服务器是如何一个Session为一个用户浏览器服务
Session的实现原理是基于Cookie回写了SessionID。
- Session细节一
- Session细节二
- 特点
1.处理一次会话多次请求
2.可以存储任意类型,任意大小
Servlet数据访问范围的总结
1.请求范围(ServletRequest)
-
何时创建的和销毁的?
创建:当用户第一次访问服务器发送请求服务器就会被创建一个request对象。
销毁:当服务器对这次请求做出响应,服务器就销毁这次请求 -
如何存取数据?
-
作用范围?
一次请求(转发就是一次请求)
2.会话范围(HttpSession)
- 何时创建的和销毁的?
创建:服务器端第一次去调用getSession方法的时候。
销毁:三种情况
1.Session过期了,默认三十分钟
2.非正常关闭服务器(正常关闭Session会被序列化)
3.手动销毁调用invalidate();方法 - 如何存取数据?
- 作用范围?
一次会话的范围(多次请求)
3.应用范围(ServletContext) - 何时创建的和销毁的?
创建:服务器启动的时候就会创建,每个web项目都会创建单独的ServletContext对象。
销毁:服务器关闭,或将web项目移除服务器 - 如何存取数据?
- 作用范围?
整个应用(多个浏览器都操作的同一个空间)