java里关于session的问题(非hibernate)

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:59:30
我写了个project,如果客户登陆后一段时间内没有进行任何操作的话session就会失效,那么就需要他重新登录 ! 这个功能怎么实现?

顺便问下session的默认失效时间是30分钟,那么在web.xml里配置<session-timeout>的话是否有效?

代码我这里就不给你详细写了!我把大概思路给你说下,也没有什么难点。你一看就会了!
首先,你只要将用户信息放在session中,其他的你就不管了,然后
在config/web.xml中配置Session的缺省失效时间,单位为分钟,例如:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
在具体Web应用WEB-INF/web.xml中配置Session失效时间,单位为分钟,例如:

<session-config>
<session-timeout>30</session-timeout>
</session-config>
在Web应用中配置的Session失效时间只对这个Web应用起作用。 如果没有为Web应用指定Session失效时间,将使用config/web.xml作为缺省配置。
你只要这样配置好了以后,无需在程序中编写专门判断事件触发的代码。因为session在用户信息中如果用户处于活动状态session则会一直存活下去,如果用户没有处于活动状态那么session会根据你的配置信息开始即时直到指定时间则会自动将session失效,你只需要编写一个失效后的页面给出给连接跳转到登陆页面就可以了!如果你还要做其他的话那就需要涉及到监听了,那样写起来和在写一个servlet差不多的,我这里给你一个参考你看看吧!
具体设置如下:
在主页面或者公共页面中加入:
session.setMaxInactiveInterval(1800); 参数1800单位是秒,即在没有活动30分钟后,session将失效。这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。在一般系统中,也可能需要在session失效后做一些操作,(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,