Session技术的理解

[quote][b][color=darkred]3、Session技术[/color]

[color=green](1)什么是session[/color]

会话

在服务器端维护客户端状态的一种状态管理技术。

其基本思想是:当浏览器访问服务器时,服务器会

创建一个对象(session对象,该对象有一个唯一的

id,也称为session id)。[color=indigo]服务器会将该id采用cookie的方式(默认情况下)。

发送给浏览器,浏览器下一次访问服务器时,会将

该id携带给服务器,服务器依据该id找到对应的

session对象。浏览器操作所涉及到的数据可以保存到

session对象里。
[/color]
[color=green](2)session的使用[/color]

A.如何获得session?

session只能由服务器创建。

HttpSession session = request.getSession();

方法一:request.getSession();

方法二:request.getSession(boolean flag);



request.getSession(true):

执行过程:

当请求到达服务器,执行到这行代码,服务器

会查看请求中有无sessionId,若无,则创建一个

session对象。若有,还要看该sessionId所对应

的session对象是否还存在(服务器不会永久

保存一个session对象,sesion对象会有一个

失效时间,对于tomcat,30分钟,超过这个时间,就

会删除)。若不存在,再创建一个新的,否则,

返回原有的那个session对象。

request.getSession(false):

当请求到达服务器,执行到这行代码,服务器

会查看请求中有无sessionId,若无,返回null,

若有,如果sessionId对应的session对象还存在,

则返回该对象,若不存在,返回null。

[u]request.getSession() == request.getSession(true)。[/u]

[color=green]B. 如何存取数据[/color]

session.setAttribute(String key,Object value);

注意 value类应用实现序列化接口。

Object session.getAttribute(String key);

session.removeAttribute(String key)
[color=red]//[u]注意:向session中添加的对象必须是可序列化的,[/u]因为服务器在正常关闭时,会将内存中的session保存到硬盘中,然后在启动的时候在以流的形式反序列化成对象存放到内存当中,这样session中的sessionId和其他数据就会保持与服务器关闭之前的状态保持一至,这样不会影响到客户端的变化。
[/color]

小例子

计数。

C. session的最大不活动时间

session.setMaxInactiveInterval(int seconds);

如果超过该时间,服务器会将session对象删除.

[color=olive]默认情况下,对于tomcat,默认是30分钟。

在conf\web.xml中配置

<session-config>

<session-timeout>30</session-timeout>

</session-config>[/color]



服务器默认情况下,是通过cookie机制,将

sessionId发送给浏览器,服务器会通过如下

代码:

Cookie c = new Cookie("jsessionId","123");

c.setPath("/appName");

也就是说,浏览器一关闭, 该cookie就会删除,

此时,即使服务器端的session对象还存在,

该对象对浏览器也无意义了。

[color=green]D. 立即让session对象失效。[/color](一般用于用户正常退出)

session.invalidate()。[/b][/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值