session挂掉以后,会响应什么事件吗?

albert_lz 2011-11-11 01:53:04
项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样?
...全文
188 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fainfy 2011-11-12
  • 打赏
  • 举报
回复
用JS轮询,唯一的办法。
别无他法。
追风筝的孩子 2011-11-12
  • 打赏
  • 举报
回复
goldenfish1919的思路很好,学习了!!把压力放到客户端比较好
cj2513 2011-11-12
  • 打赏
  • 举报
回复
楼主可以设置个定时器,定时检测session是否存在,不存在则弹出窗口!
元心 2011-11-12
  • 打赏
  • 举报
回复
可以采用在用户点时触发重新登录操作。
mgz521009 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 albert_lz 的回复:]
项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样?
[/Quote]

LZ,如果考虑性能情况下,可以在做某个操作的时候去判断一下session 是否有效,然后再做出相应的提示之类的。不要用实时调用查看!
hongfeideng 2011-11-11
  • 打赏
  • 举报
回复
public void sessionCreated()
{
将用户名和Session保存在Application中
}
public void sessionDestory()
{
将用户在Application中干掉!
}

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

PS:Ajax每次访问的时间间隔不要太短,否则人多了服务器受不了啊!
我真的很懒 2011-11-11
  • 打赏
  • 举报
回复
那应该是要不停的刷新页面吧
若鱼1919 2011-11-11
  • 打赏
  • 举报
回复

<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>


把这块js代码加到页面上,就能够实现,session过期,跳转到login.jsp
若鱼1919 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 albert_lz 的回复:]

不行,你这样还要打开页面才能判断,我要的效果是,即使不进行任何操作,session挂掉后(比如说session超时),会自动弹出提示。

[/Quote]

你这个要求有点不理解,难道客户的浏览器是关闭的,也要弹出提示?

米家 2011-11-11
  • 打赏
  • 举报
回复
就相当于,点击退出登陆,清空sessiong,返回登陆页面不就可以了吗?
每个jsp判断session为空则提示框框,返回登陆页面~~~
albert_lz 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goldenfish1919 的回复:]
引用 3 楼 goldenfish1919 的回复:

引用 1 楼 goldenfish1919 的回复:

session挂掉以后,系统会弹出一个对话框

无解!


瞎说,可以使用 使用服务端推送技术



每打开一个页面,在onload里面计时,如果超过了session的过期时间,就跳转到登陆页面。

这样可以不?
[/Quote]
不行,你这样还要打开页面才能判断,我要的效果是,即使不进行任何操作,session挂掉后(比如说session超时),会自动弹出提示。

zhu6100441 2011-11-11
  • 打赏
  • 举报
回复
咦,2楼怎么不见了?
session死掉后会触发sessionDestory事件,你可以用拦截器拦截用户的操作,去查下当前用户的session是否还存在,不存在就返回到登录页面。
  • 打赏
  • 举报
回复
创建监听器
public class session监听器 extends HttpListener
{
public void sessionCreated()
{
}
public void sessionDestory()
{
}
}

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

若鱼1919 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 goldenfish1919 的回复:]

引用 1 楼 goldenfish1919 的回复:

session挂掉以后,系统会弹出一个对话框

无解!


瞎说,可以使用 使用服务端推送技术
[/Quote]


每打开一个页面,在onload里面计时,如果超过了session的过期时间,就跳转到登陆页面。

这样可以不?
若鱼1919 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 goldenfish1919 的回复:]

session挂掉以后,系统会弹出一个对话框

无解!
[/Quote]

瞎说,可以使用 使用服务端推送技术
LPZLSDJF 2011-11-11
  • 打赏
  • 举报
回复
就是sessionout时间设置一下,然后建立一个错误页面,当程序判断session过期后,跳转,弹出信息
若鱼1919 2011-11-11
  • 打赏
  • 举报
回复
session挂掉以后,系统会弹出一个对话框

无解!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧