servlet-session

本文深入解析了HTTPSession在JavaWeb中的作用,包括其作为会话跟踪类的基本概念、生命周期管理及常用方法,如setAttribute、getAttribute等,同时介绍了session依赖的cookie机制和URL重写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本概念

1.HTTPSession是JavaWeb中用来会话跟踪的类。HTTPSession提供了一种跨多个页面请求或访问网站时识别用户以及存储有关用户信息的方式。

2.HTTPSession的实例session保存在服务器端,是servlet三大域对象之一,其他两个域对象是request、application(ServletContext)

3.HTTPSession底层依赖cookie,或是URL重写。

4.当某个客户端首次请求服务器时,服务器会为这个客户端创建一个session对象,session对象就好像是客户在服务器端的账户,它们被服务器保存到一个Map中,即session缓存中。

5.session生命周期开始于客户端首次请求服务器,结束于用户关闭浏览器。

二、session域常用方法

1.request.getSession(),获取session对象。

2. session.setAttribute(String name, Object value) ,该方法使用指定的名称绑定一个对象到该 session 会话。

3.session.getAttribute(String name),该方法返回在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null。

4.session.removeAttribute(String name),该方法将从该 session 会话移除指定名称的对象。

5.public String getId(),该方法返回一个包含分配给该 session 会话的唯一标识符的字符串。

6.public void setMaxInactiveInterval(int interval),设置session被允许的最大不活动时间(秒),默认为30分钟,如果某个session在30分钟内没有被使用,那么服务器会在session池中移除这个session。

<!--web.xml中配置session的最大不活动时间,单位:分钟-->
<session-config>
  	<session-timeout>30</session-timeout>
</session-config>

7.public int getMaxInactiveInterval(),该方法返回 Servlet 容器在客户端访问时保持 session 会话打开的最大时间间隔,以秒为单位。

8.public void invalidate(),该方法指示该 session 会话无效,并解除绑定到它上面的任何对象。

9.public boolean isNew(),判断session是否为新。当客户端第一次请求时,服务器为客户端创建一个session,但这时服务器还没有响应客户端,也就是还没把sessionId放到cookie里,这时session.isNew()返回true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值