HttpSession对象
学习链接:https://www.bilibili.com/video/BV1BK4y1P7Li/?spm_id_from=333.999.0.0
1. session作用:
表示一次会话或者是确认一个用户,并且在一次会话中,一个用户可以多次请求,并且在期间数据是共享的。
2.基本操作
//获取session对象:存在则获取session对象,不存在就创建session对象 HttpSession session = request.getSession(); //获取且打印session的会话标识符 System.out.println(session.getId()); //获取且打印session的创建时间 System.out.println(session.getCreationTime()); //获取且打印最后一次访问时间 System.out.println(session.getLastAccessedTime()); //判断且打印是否是新的session对象 System.out.println(session.isNew());
3.JSESSIONID:
是一次会话的唯一标志,如果改变了,就是下一次会话了,同时,控制台的 id/标识符就会改变。
例如:在网页中删除这个JSESSIONID
这时会重新传一个新id
但是如果服务器重启了,则这些对象都清空了,服务端没有session对象了,就算客户端传相同的ID进来,他也只是会重新创建一个session对象,即id/标识符还是和以前不一样的。(session对象属于服务器的一个对象)
4.session域对象
只要session不销毁,session域对象是可以一直进行共享数据的。
//获取session对象:存在则获取session对象,不存在就创建session对象 HttpSession session = request.getSession(); //设置域对象 session.setAttribute("uname","hmy"); session.setAttribute("upwd","123456"); //移除session域对象 session.removeAttribute("upwd"); //request域对象 request.setAttribute("name","zhangsan");
//获取session域对象 String uname = (String)request.getSession().getAttribute("uname"); String upwd = (String) request.getSession().getAttribute("upwd"); //获取request域对象 String name = (String) request.getAttribute("name");
5.销毁session对象
1)默认时间
在客户端第一次请求servlet并且操作session时候,session对象生成,Tomcat中默认存活时间为30分钟,不过默认时间也是可以自行修改的,可以在 Tomcat 的 conf 目录下的web.xml文件中修改(不建议修改)
以记事本方式打开,CTRL+F查找
2)手动修改到期时间
//获取最大不活动时间: System.out.println("Session最大不活动时间:"+session.getMaxInactiveInterval()); //手动修改最大不活动时间( 注意,单位是s ) session.setMaxInactiveInterval(15);
3)立即销毁
即每次刷新,值都会改变
//立即销毁 session.invalidate();
4)关闭浏览器就失效(????没有实现)
session底层依赖cookie,cookie对象默认只在浏览器内存中存活,关闭浏览器就会失效了。
注意:是关闭浏览器再启动,后台不动。
5)关闭服务器就失效
关闭服务器时,session销毁。
标签:String,对象,request,学习,获取,session,println,HttpSession From: https://www.cnblogs.com/hmy22466/p/16782856.html