Servlet(5)

HttpSession 对象

HttpSession对象进行会话跟踪,一个用户可以有且最多有一个HttpSession,并且不会被其他用户访问到。

HttpSession对象在用户第一次访问网站时自动被创建,可以通过调用HttpServletRequest的getSession方法获取对象。

getSession有两个重载方法:

HttpSession getSession()

//返回当前的HttpSession,若没有,则创建一个返回

HttpSession getSession(boolean create)

//加参数false,返回当前的HttpSession,若没有,则返回NULL

//加参数 true,返回当前HttpSession,若没有,则创建一个返回

可以通过HttpSession的setAttribute方法将值放入HttpSession中,

void setAttribute(String name,Object value)

不同于URL重写,隐藏域或cookie,放入到HttpSession中的值存储于内存中,所以不要放太多对象或大对象。

调用HttpSession的getAttribute方法可以取回之前放入的对象

Object getAttribute(String name)

getAttributeNames 方法返回一个Enumeration对象来迭代访问保存在HttpSession中的所有值:

Enumeration<String> getAttributeNames()

保存在HttpSession中的数据不会发送到客户端,Servlet容器为每个HttpSession生成唯一标识,并将该标识发给浏览器,或创建一个名为JSESSIONID的cookie,或在URL后附加一个名为jsessionid的参数。

可通过调用HttpSession的getId方法来读取该标识

String getId();

HttpSession还有一个invalidate的方法强制会话过期,并清空其保存的对象。

默认情况下,HttpSession会在用户不活动一段时间后自动过期,该时间可以通过部署描述符的session-timeout元素配置,以分钟为单位,若无配置,则该值取决于Servlet容器的设定

可以通过getMaxInactiveInterval方法查看会话多久会过期,该方法返回一个数字类型,单位秒。

调用setMaxInactiveInterval方法来单独对某个HttpSession设定其超时时间:

void setMaxInactiveInterval(int seconds)

若参数为0,则该HttpSession 永不过期,则其所占用内存将永不释放,直到应用重新加载或Servlet容器关闭。

/*

HttpServletRequest.getRequestURI()

返回值:客户端访问网站的URI路径(相对路径),返回类型为字符串。

endsWith() 方法用于测试字符串是否以指定的后缀结束。

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值