了解java中的session
先看看对session的一个比较好的阐述:
session就是一个会话,在浏览器不关闭的前提下,可以保存用户的信息,就是象一个临时的容器,来存放这些临时的东西。比如登录的保存用户信息从一个网页跳转到另一个网页,用户信息就可以用session保存网站购物车可以用session实现
为什么需要Session
这是为了填补Http协议的局限,当用户去访问一个页面,服务端返回完了请求(如,你访问完一个网页,这个页面将页面内容,界面UI呈现给你),就算是结束了,就断开了,服务端不再去追踪客户端(浏览器)的任务状态,所以Http的每次请求都是独立的,非连续的,Http也称为无状态协议。那我们如果想在一个场合,或是一个特定过程,操作些用户自己的数据,就会很麻烦,甚至很危险。比如你可以通过url传参数的方式与服务器交互,并实现操作;
Session(会话)的出现就解决了这样的问题,Session是创建在服务端的,在一定的时间后,由服务端来消毁。在这段时间,客户端与服务端的会话就会保持着,客户端就会利用服务端上的Session信息来找到或操作一些数据;
如何使用Session
JavaApi只给我们一种方式来获取当前会话相关的session:
HttpSessionsession=request.getSession(); //或 HttpSessionsession=request.getSession(boolean);
设置值:
session.setAttribute("key",值对象);
获取值:
对象类型obj=(对象类型)session.getAttribute("key"); //如 Stringname=(String)session.getAttribute("key");
删除session指定属性健:
session.removeAttribute("key");
清除所有的session,使当前session完全失效:
session.invalidate();
session超时周期设置
1.Tomcat安装位置conf/web.xml:
30
30分种
2.Tomcat安装位置conf/server.xml:
单位为秒
3.Java代码设置:
HttpSessionsession=request.getSession(); session.setMaxInactiveInterval(1200);
0分种:
其他说明:
1.session过期情况:
1>.客户端浏览器关闭:
2>.session会话过期;
3>.客户端会话调用了.invalidate();
2.浏览器关闭与session是否还在;
当客户端浏览器关闭后,session在服务端还是会存在一定时间的,只是当浏览器器再次打开时,就会生成一个新的session,浏览器通过生成的sessionid属性来匹配服务端的session;那上次的session虽然还在,但是就访问不到了;
3.<%@pagesession="false"%>是什么情况?:
这句话的意思是,当前不能使用session,但是页面session还是可以创建的;
4.session在什么时候被创建:
在程序调用HttpServletRequest.getSession(true)时创建;如果页面没有使用<%@pagesession="false"%>时,在jsp页面编译成Servlet时,会自动加上HttpSessionsession=HttpServletRequest.getSession(true);
总结
以上就是本文关于了解java中的session的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!