日期:2014-05-17  浏览次数:20702 次

jsp session 过期提示问题
jsp 里面如何完成当session 过期后,自动弹出消息提示,然后关闭窗口?

查了好多资料,还是不太明白,有经验的指导一下。
谢谢

------解决方案--------------------
定时刷呀
------解决方案--------------------
用filter啊,检查到session里的用户信息没有了,就跳转。
------解决方案--------------------
filter+1
------解决方案--------------------
你可以用getSession(false),应该是false。表示如果没有session对象,不自动创建。然后看看是不是有效。

恩,恩
------解决方案--------------------
写个过滤器..针对每一个请求验证session中有没有你存的信息.如果没有的话作相应操作..
------解决方案--------------------
其实AJAX定时去后台判断request里面的SESSION是否过期也可以啊


------解决方案--------------------
function validateSession(){
var k=<%=request.getSession().getAttribute("对象名")%>
if(k==null){
window.close();
 }
}
放js里,
在改下<body onload()>
试一下看行不
------解决方案--------------------
探讨
function validateSession(){
  var k= <%=request.getSession().getAttribute("对象名")%>
  if(k==null){
    window.close();
}
}
放js里,
在改下 <body onload()>
试一下看行不

------解决方案--------------------
学习
------解决方案--------------------
判断是在JSP里判断的,是JAVA代码判断,也就是说,你要访问一个JSP的时候才能判断,你看到了一个JSP的页面后,就无法判断了,比如说你看到了一个页面,一直停在那里,是无法判断是否过期的,也是不需要判断的,当它访问某一个资源的时候,你再判断就行了,就像Struts中的过滤器...任何访问JSP,Action之前都先到过滤器中判断一下...
------解决方案--------------------
我以前搞这个还走了不少弯路!最后才知道用个JS就搞定了
------解决方案--------------------
过滤器,判断session,如果有,链到下一个页面,如果没有,直接跳到一个提示页面,并且JS关闭
------解决方案--------------------
做个拦截器配置上去
------解决方案--------------------

1.在一个baseAction中作一个session time out 的 check 方法.

2.然后别的action 继承 baseAction.

3.在每一个action中作判断。

4.struts-config.xml 中 中配置异常后的跳转画面(<global-exceptions>)。

step1 代码
public void sessionTimeOutValidate(HttpServletRequest request) throws 
SessionTimeoutException
{
if(null == request.getSession().getAttribute(Constants.USER_ID)) {
throw new SessionTimeoutException("SessionTimeoutException:
sessionExpire异常");
}
}

SessionTimeoutException 异常类代码省略

step2 ,3,4 代码略
------解决方案--------------------
补充:
用js的方法安全性不高
------解决方案--------------------
jsp里判断,就用ajax好了
------解决方案--------------------
支持一下
------解决方案--------------------
路过学习