jsession的作用
来源:互联网 发布:大数据分析人物 编辑:程序博客网 时间:2024/05/20 00:49
问题:为何出现如下url:http://www.xxx.com/xxx_app;jsessionid=xxxxxxxxxx?a=x&b=x,即jsession以;jsessionid=xxxxxxxxxx的形式出现在url中
1:session的作用
由于http协议是无状态会话协议,无法保存信息,session是为了解决用户在浏览活动中能够保存信息而诞生的。每一个session都会有唯一标识符jsessionid,jsessionid保存在cookie中,每次客户端请求,服务器都能通过保存在cookie中的jsessionid找到对应的session。也就是说session是基于cookie的实现。 ps:储存jsession的cookie与一般的cookie变量不同,jsessionid是保存在内存cookie中的,在一般的cookie文件中是看不到它的影子的。内存cookie在打开一个浏览器窗口的时候会创建,在关闭这个浏览器窗口的时候也同时销毁。这也就解释了为什么session变量不能跨窗口使用,要跨窗口使用就需要手动把jsessionid保存到cookie里面。
2:如果用户禁用了cookie?
当用户禁用了cookie,服务器理所应当的无法获取jsession,也无法获取对应的session,为了解决这问题,我们将使用重写url技术,将jsessionid以;jsessionid=xxxxxxxxxx的形势附加在url上,也就诞生了问题中的情况。 当用户禁用cookie时,整个会话活动过程url都必须携带jsession参数,而我们处理url的时候不得不去解析url,在解析完毕之后再附加上jsession参数返回,显得十分麻烦。故sun提供了以下两种方法,response.encodeurl()和response.encoderedirecturl()
ps: 另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
2.1两种方法的区别
两种方法本质上没有太大的区别。唯一需要注意的是,当使用sendredirect时,由于是产生新的请求,原来的请求会消失,故要使用
response.encoderedirecturl()
3:关于session
3.1:当程序需要使用session时,会先通过jsessionid查找相应的session来使用,如果查找不到,有可能会创建出一个session来使用,如果没有jsessionid,则会新创一个session并且产生对应的jsessionid,在本次响应结束时返还给客户端并且保存在cookie中jsession是一个极其难重复和被仿造的长字符串。
3.2:关于“只要关闭窗口,session就会消失”,服务器是无法感觉窗口是否关闭,只能通过特定时机清楚session(如在用户选择登出时,将session设置为过期)或者当session超过一定时间没有使用则使session过期的方法让消失。
4:cookie储存在哪里
保存jsessionid的cookie是储存在内存中的。那么什么时候是储存在内存中,什么时候是储存在硬盘中呢?
只要设置了过期时间的cookie都是储存在硬盘中,无任何操作的cookie就是储存在内存中
主要参考:http://sxsoft.blog.163.com/blog/static/190412229200911103116773
- jsession的作用
- 修改tomcat里面的jsession里面的名字
- 跨域数据交换与跨域的jsession问题
- jsession session
- other 关于jsession
- jsession 和 cookie欺骗原理
- jsession 和 cookie欺骗原理
- jsession 和 cookie欺骗原理
- HTTP Request jsession id and cookie
- 作用域::的作用
- 作用域的作用
- curl携带jsession方式请求,获取cookie等
- ::的作用
- !!的作用
- Spring的作用、Struts的作用、Hiberante的作用
- 电容的作用?电容器的作用?
- 电话交换机的作用,程控交换机的作用
- 电容的作用?电容器的作用?
- Java总结篇系列:Java泛型
- JAVA Web.xml 加载顺序
- 设计模式学习笔记--简单工厂模式(Simple Factory Pattern)【创建型模式】
- Linux文件目录操作命令 mv
- 第二章——类型、运算符与表达式
- jsession的作用
- Struts-Filter配置详解
- HDU 1372 Knight Moves
- P1103 校门外的树
- smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
- 【框架-MFC】禁用鼠标拖拽标题栏移动窗口
- 移动端学习总结——性能优化
- poj2287 Tian Ji -- The Horse Racing(2016xynu暑期集训检测 -----C题)
- GitHub如何在网页面板创建文件夹