session过期后给个提示然后跳转到登陆界面

liwu556677 2010-06-05 04:34:47
session里面存了变量 在用户一段时间没有动页面是,该页面就报 HTTP Status 500 - 错误 我就是想要再这个错误前一分钟时自动弹出alert("您的操作已过时,请重新登陆");当点击确定后就跳到 login.jsp 页面。哪位大侠可以给我提供一点思路,能够给个实例,小弟万分感谢,并且还加分!呵呵……
...全文
1148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepeng_8 2010-06-06
  • 打赏
  • 举报
回复
你在session里面有个值把
那你可以判断一下那里面的值还在不在
那样是不是可以解决 啊
zhaobocheng 2010-06-06
  • 打赏
  • 举报
回复
1.楼主可以直接在jsp页面判断。
<script language="javascript">
<%
if(session.getAttribute("user")==null){%>
window.alert('跳转失败');
winodw.location.href="login.jsp";
<%}%>


</script>

2.楼主可以直接在Action中的execute判断
如果楼主是用的struts1.x,就可以直接是用session来判断。如果楼主用的是struts2,就得先得到session
struts1.x
if(session.getAttribute("user")==null){
return mapPinng.findForward("gologin");
}
-------------
struts2.x
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
Session session = request.getSession();
if(session.getAttribute("user")==null){
return "go";
}
3.或者直接在web.xml中配置500的错误页面。像5楼的用户所说。
4.或者在strtus-config.xml或struts.xml中配置集中session为空跳转页面。
woshijulinhou 2010-06-06
  • 打赏
  • 举报
回复

<%
String lin= (String)session.getAttribute("operno");
if(session.getAttribute("")==null||"".equals(lin)){
out.print("<script language=javascript>alert('您已经与服务器断开连接,请重新登录!');window.location.href='login.jsp';</script>");
}%>
把这一段代码写在你的页面中就可以了很好用的
依斗罗洪 2010-06-06
  • 打赏
  • 举报
回复
在session.getAttribute()时属性值是否为空。。。。

或者你可以设定用户的一个访问时间,用户操作时,更新session的operate数和时间值。并使用过滤器在指定的时间过滤。
star123045 2010-06-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 monkeyking1987 的回复:]

在WEB项目中.request,session,context都有对应的监听器,如session的HttpSessionListener,这是一个接口,有两个方法,对应session 的创建与销毁,
实现后在web.xml文件中注册监听,就可以实现对应的操作.
这不错的.
[/Quote]
我也知道这个,但是LZ的要求怎么达到呢?我也想呢……
MaybeLoveYou 2010-06-05
  • 打赏
  • 举报
回复
你判断了session所得到的属性值的是否没有....
monkeyking1987 2010-06-05
  • 打赏
  • 举报
回复
在WEB项目中.request,session,context都有对应的监听器,如session的HttpSessionListener,这是一个接口,有两个方法,对应session 的创建与销毁,
实现后在web.xml文件中注册监听,就可以实现对应的操作.
这不错的.
扁鵲東南飛 2010-06-05
  • 打赏
  • 举报
回复
其实你可以这样。
在web.xlm 里加一个500错误跳转界面,就跳到login.jsp
       
<error-page>
<error-code>404</error-code>
<location>/jsp/building.jsp</location>
</error-page>


或者加一个过滤器,在过滤器里,获取这样,如果session丢失了,那么就跳到login.jsp


HttpSession session=request.getSession();
String haslogin = (String)session.getAttribute("operno");
if(haslogin==null|| "".equals(haslogin)){
//可以在这里设置下,把其后台的“您的操作已过时,请重新登陆” 传递。
response.sendRedirect("../login.jsp");
}
beautycloud 2010-06-05
  • 打赏
  • 举报
回复
跟Cookie相比Session是比较安全而且容易被用户接受,建议查阅关于Session的使用方法。
zhang9215 2010-06-05
  • 打赏
  • 举报
回复
既然过段时间会报500,说明你页面每段时间会去自动用到session里的值,可以找到用的地方,在用之前加个判断,为空就提示
zhzhzhhh 2010-06-05
  • 打赏
  • 举报
回复
我猜测你应该是对session.getAttribute("xxx")这个做了引用然后才判断的吧
这样最容易出现的就是空指针异常引发的500错误
wu_huiwen 2010-06-05
  • 打赏
  • 举报
回复
整个监听器,但是不能在前一分钟弹出提示,可以在过期时 ,提醒或者自动跳转到指定页面

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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