Web开发之会话管理技术(Cookie、Session)
来源:互联网 发布:海康威视管理端口设置 编辑:程序博客网 时间:2024/04/25 20:26
Web开发之会话管理技术:
管理浏览器和服务器之间的会话过程中产生的会话数据。
一、Cookie技术
特点:会话数据将保存在浏览器客户端。
核心技术:Cookie类,用于储存会话数据
A、Cookie会话的编写流程:
1)服务器创建cookie对象,把会话数据存储到cookie对象中。
Cookie cookie = new Cookie(“name”,”value”);
2) 服务器发送cookie信息到浏览器
response.addCookie(cookie);
底层实现:set-cookie: name=eric (隐藏发送了一个set-cookie名称的响应头)
3)浏览器得到服务器发送的cookie,然后保存在浏览器端。
4)浏览器在下次访问服务器时,会带着cookie信息
底层实现: cookie: name=eric (隐藏带着一个叫cookie名称的请求头)
5)服务器接收到浏览器带来的cookie信息
Cookie[] cookies = request.getCookies();
B、Cookie会话的常用API及特点
1)void setPath(String uri) :
设置cookie的有效访问路径。有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时就会带着cookie信息,否则不带cookie信息。
2)void setMaxAge(int expiry) :
设置cookie的有效时间。
正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。
负整数:表示cookie数据保存浏览器的内存中。浏览器关闭cookie就丢失了!!
零:表示删除同名的cookie数据
3)Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
二、Session技术
特点:会话数据将保存在服务器端。
核心技术:HttpSession类,用于储存Session会话数据
A、Session会话的编写流程:
1). 创建或得到session对象
HttpSession session = request.getSession(); //创建或得到session对象
HttpSession session = request.getSession(false); //只得到session对象
2). 会话数据保存session对象中,和得到会话数据
session.setAttribute(“name”,Object); //保存数据(可以是任意Object)
Object obj = session.getAttribute(“name”) //得到数据
B、Session会话的常用API及特点
1)java.lang.String getId() : 得到session编号
2)void setMaxInactiveInterval(int interval) : 设置session的有效时间
session对象销毁时间:
2.1 默认情况30分服务器自动回收
2.2 修改session回收时间
2.3 全局修改session有效时间
1
2.4.手动销毁session对象
void invalidate();// 销毁session对象
3)如何避免浏览器的JSESSIONID的cookie随着浏览器关闭而丢失的问题
解决办法:可以手动发送一个硬盘保存的cookie给浏览器
Cookie c = new Cookie(“JSESSIONID”,session.getId());
c.setMaxAge(60*60);
response.addCookie(c);
原理就要说到request.getSession();方法的实际底层操作了:
HttpSession session = request.getSession();
1)第一次访问创建session对象,给session对象分配一个唯一的ID,叫JSESSIONID
2)把JSESSIONID作为Cookie的值发送给浏览器保存
//伪代码:Cookie cookie = new Cookie(“JSESSIONID”, sessionID);
response.addCookie(cookie);
3)第二次访问的时候,浏览器带着JSESSIONID的cookie访问服务器
4)服务器得到JSESSIONID,在服务器的内存中搜索是否存放对应编号的session对象。
5)如果找到对应编号的session对象,直接返回该对象
6)如果找不到对应编号的session对象,创建新的session对象,继续走1的流程
- Web开发之会话管理技术(Cookie、Session)
- 会话管理之Cookie技术+Session技术
- java web之会话技术cookie+session
- 会话管理技术Cookie&Session
- 会话管理(Cookie技术和Session技术)
- 14、会话管理(cookie技术、session技术)
- 会话管理之Cookie技术
- 会话管理(Cookie、Session)
- 会话管理:Cookie与Session技术
- WEB中的会话技术:Cookie及Session
- Web会话技术Cookie和Session
- 会话管理之session技术
- JavaWeb开发中的会话技术[Cookie/Session]
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- JavaWeb之会话技术Cookie&Session
- Python3之cookie与session会话技术
- 【cookie/session】会话技术
- 会话技术(Cookie,Session)
- 机器学习中的相似性度量
- js特效 对话框 悬浮箭头
- 【Java源码分析】Vector源码分析
- 游标概念
- python pip 报错KeyError: u'\u98de'处理
- Web开发之会话管理技术(Cookie、Session)
- Git与IntelliJ IDEA整合
- WPF 与 WinForm 调用系统右键菜单/资源管理器右键菜单/桌面右键菜单
- JBuilder2006 破解方法
- Mybatis深入了解(四)----输入输出映射
- Eclipse高效率开发技巧(Eclipse工具的使用技巧)
- 最小二乘法拟合直线-C++实现
- css实现网页”回到顶部“的代码效果
- 无缝滚动研究