首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

session挂掉以后,会响应什么事件吗?该如何解决

2012-01-19 
session挂掉以后,会响应什么事件吗?项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新

session挂掉以后,会响应什么事件吗?
项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样?

[解决办法]
创建监听器 
public class session监听器 extends HttpListener
{
public void sessionCreated()
{
}
public void sessionDestory()
{
}
}

web.xml中
<listener>
xxxxx
</listener>


[解决办法]

JScript code
<script type="text/javascript" language="javascript">var enterTime = 0;window.onload=new function(){    // 每一秒钟调用一次    setInterval("redirect()", 1000);}function redirect(){    var nowTime = new Date().getTime();    if((nowTime - enterTime) >= "<%=session.getMaxInactiveInterval()%>"*1000){        window.location.href="<%=request.getContextPath()%>/login.jsp";     }    enterTime = nowTime;}</script>
[解决办法]
public void sessionCreated()
{
将用户名和Session保存在Application中
}
public void sessionDestory()
{
将用户在Application中干掉!
}

在页面,每5秒使用Ajax访问服务端的某个Action后面带上用户名,在这个Action根据传递过来的用户在Application中找是不是有对于的值,没有则返回“请重新登录”,否则返回“正常”,在Ajax的JS代码中判断一下就可以实现了,简单吧?简单就给分分吧!

PS:Ajax每次访问的时间间隔不要太短,否则人多了服务器受不了啊!

[解决办法]
探讨
项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样?

[解决办法]
goldenfish1919的思路很好,学习了!!把压力放到客户端比较好
[解决办法]
用JS轮询,唯一的办法。
别无他法。

热点排行