Javaweb 会话跟踪学习记录(2)—Session

Javaweb 会话跟踪学习记录(2)—Session

 Session 技术是指使用 HttpSession 对象实现会话跟踪的技术,是一种在服务器端保持会话跟踪的解决方案。HttpSession 对象用来保存单个用户访问时的一些信息,是服务器在无状态的HTTP 协议下用来识别和维护具体某个用户的主要方式。 HttpSession 对象会在用户第一次访问服务器时由容器创建(注意只有访问JSP、 Servlet 等程序时才会创建,只访问 HTML、IMAGE 等静态资源并不会创建),当用户调用其失效方法(invalidate() 方法)或超过其最大不活动时间时会失效。在此期间,用户与服务器之间的多次请求都属于同一个会话。
 服务器在创建会话对象时,会为其分配一个唯一的会话标识 —SessionId,以“JSESSIONID”的属性名保存在客户端 Cookie 中,在用户随后的请求中,服务器通过读取 Cookie 中的 JSESSIONID 属性值来识别不同的用户,从而实现对每个用户的会话跟踪。
 cookie 和 session 的区别:

  • cookie 数据存放在客户的浏览器上, session数据放在服务器上。
  • cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗,考虑到安全应当使用 session 。
  • session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 COOKIE。
  • 将登陆信息等重要信息存放为 SESSION,其他信息如果需要保留,可以放在COOKIE中

 1.获取HttpSession 对象
HttpServletRequest 接口提供了获取 HttpSession 对象的方法

方法 方法描述
getSession() 获取与客户端请求关联的当前的有效的Session,若没有Session关联则新建一个
getSession(boolean create) 获取与客户端请求关联的当前的有效的Session,若没有Session关联,当参数为真时,Session被新建,为假时,返回空值。

示例: 获取 HttpSession 对象:

HttpSession session = request.getSession();
或HttpSession session = request.getSession(true);

 2.HttpSession 接口的方法
HttpSession 接口提供了存取会话域属性和管理会话生命周期的方法

方法 方法描述
void setAttribute(String key,Object value) 以key/value的形式将对象保存在HttpSession对象中
Object getAttribute(String key) 通过key获取对象值
void removeAttribute(String key) 从HttpSession对象中删除指定名称key所对应的对象
void invalidate() 设置HttpSession对象失效
void setMaxInactiveInterval(int interval) 设定HttpSession对象的非活动时间(以秒为单位),若超过这个时间,HttpSession对象将会失效
int getMaxInactiveInterval() 获取HttpSession对象的有效非活动时间(以秒为单位)
String getId() 获取HttpSession对象标识sessionid
long getCreationTime() 获取HttpSession对象产生的时间,单位是毫秒
long getLastAccessedTime() 获取用户最后通过这个HttpSession对象送出请求的时间

 3.存取会话域属性的方法
示例:存取会话域属性

//存储会话域属性 "username", 值为"CSDN"
session.setAttribute("username","CSDN");
//通过属性名 "username" 从会话域中获取属性值
String uname =(String)session.getAttribute("username");
//通过属性名将属性从会话域中移除
session.removeAttribute("username");

 4.管理会话生命周期的方法

  • 示例:获取会话的最大不活动时间在这里插入代码片int time = session.getMaxInactiveInterval(); // 单位为”秒“
  • 会话的最大不活动时间指会话超过此时间段不进行任何操作,会话自动失效的时间。
  • HttpSession 对象的最大不活动时间与容器配置有关,对于 Tomcat容器,默认时间为 1800 秒。
  • 通过 web.xml 设置会话的最大不活动时间(通用):
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值