会话技术
来源:互联网 发布:手机广告设计软件 编辑:程序博客网 时间:2024/05/23 01:24
会话技术
概念:
会话就是一次谈话,在web中指,浏览器和服务器之间的一次通信。包含多次请求和响应,可以在一次请求的多次请求中共享数据。
客户端会话技术:cookie
数据储存在客户端
原理:
1.客户端请求一个资源,服务器做出响应时,会发送set-cookie头,共享数据。
2.客户端接收到响应,会将数据保存在客户端浏览器。
3.客户端再次请求服务器时,会通过cookie头携带该数据。
4.服务端收到请求,回来解析获取数据。
cookie持久化问题
cookie默认保存在浏览器的内存中,一旦浏览器关闭内存释放,存的数据就不见了。
设置cookie的存活时间,可以使其持久化。
setMaxAge(int second)
正数:存在硬盘里
负数:存在内存里
0:删除cookie
cookie不支持中文
要想使用中文可以使用将其编码,取出时再解码的方式。
不能跨浏览器
String string = "任凯"; String encode = URLEncoder.encode(string, "UTF-8"); Cookie cookie = new Cookie("num1", encode); cookie.setMaxAge(60*60*24*7); response.addCookie(cookie);
Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { System.out.println(URLDecoder.decode(c.getValue(), "utf-8")); }
服务端会话技术 session
将数据吧保存在服务器端
原理:
session依赖于cookie存在
java中session的实现
//获取sessionHttpSession session = request.getSession();//session的三个主要的方法session.getAttribute("num1");session.setAttribute("num1", "100");session.removeAttribute("num1");
session中的一些细节问题
1.
浏览器关闭了,session不一样了。
Cookie没了。jsessionid没了。
服务器关闭了,session一样吗?不一样。内存释放了。
优化:虽然对象不一样了,但是session中存储的数据还是一样的
钝化:服务器正常关闭后,session对象被写入硬盘的文件中
活化:服务器开启后,将文件还原为内存的session对象
2
session的生命周期
创建:request.getSession();
会根据jsessionid查找是否存在session,如果不存在就创建
销毁:服务器关闭
session超时
3
如果客户端禁用了 cookie session 应该如何自处
客户端禁用了cookie session就会不一样
PrintWriter pw = response.getWriter(); HttpSession session = request.getSession(); String id = session.getId(); String href = "/day09/s1"; href = response.encodeRedirectURL(href); System.out.println(href); pw.write("<a href='"+href+"'>s1</a>");
4.获取session:
getSession():会根据jsessionid值查找是否存在sesison对象,如果没找到,则创建新的session
getSession(boolean flag):
true:默认值,会根据jsessionid值查找是否存在sesison对象,如果没找到,则创建新的session
false:会根据jsessionid值查找是否存在sesison对象,如果没找到,则返回null
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- 会话技术
- Servlet会话跟踪技术
- 会话cookies技术
- 会话跟踪技术
- JavaWeb之会话技术
- session会话跟踪技术
- Linux基本命令
- 打鸡血有道每日一句
- 多线程和多进程的区别
- Inno Setup入门(四)——为程序创建桌面快捷方式
- Java 静态导入
- 会话技术
- 51nod 1557 两个集合 (严谨的逻辑题)
- 彻底搞懂Websocket原理
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 大数据基础设施建设需要得到重视 | 记清华大数据“应用·创新”讲座
- [agc006e]Rotate 3x3
- 常见七种排序算法
- GhostScript命令参数详解
- 如何处理前任程序员留下的代码