Struts2 设置定时器监听销毁session(若干秒后自动返回首页)
来源:互联网 发布:mac一般什么时候发布 编辑:程序博客网 时间:2024/06/06 18:26
有时候为了安全起见,需要实现网页长时间不操作,几秒后自动返回首页重新登录功能。这个时候可以使用Struts2定时器与拦截器来实现。步骤如下:
① 在应用程序的web.xml中设置session销毁时间
<!--设置超时时间,1代表1分钟--> <session-config> <session-timeout>1</session-timeout> </session-config>
② 写一个Struts2的自定义拦截器,用来判断session是否已经被销毁。
public class LoginCheckInter extends AbstractInterceptor {@Overridepublic String intercept(ActionInvocation arg0) throws Exception { Map session=ActionContext.getContext().getSession(); Action action = (Action) arg0.getAction(); String username=(String) session.get("username"); //验证session是否过期,如果过期转到对应页面 if(username!=null) { //返回继续执行 return arg0.invoke(); } else { //执行全局变量result为"sessionOut" return "sessionOut"; } } }
备注:ActionContext.getContext().getSession();是获得SessionAware接口中Map<String,Object>集合类型的session的。
如果使用其他方式获得session的话,请使用对应方式取得session再判断。
Struts2 action 实现SessionAware接口,可以实现session 保存结果集的功能。
③ 在struts.xml中自定义一个拦截器栈,如下:
<!-- 自定义拦截器 --> <interceptors> <interceptor name="loginCheck" class="com.hanyun.interceptor.LoginCheckInter" /> <interceptor-stack name="mystack"> <interceptor-ref name="loginCheck"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors>
④ 定义完拦截器栈之后,定义全局result,如下
<!-- 定义全局result --> <global-results> <result name="toLogin">/index.jsp</result> <result name="sessionOut">/tip.jsp</result> </global-results>⑤ 在需要执行检查的action中使用自定义拦截器栈
<!-- 对虚拟机进行操作:开机或关机 --> <action name="vmOper" class="com.hanyun.action.VMOpenAction" method="operation"> <result type="json">result</result> <interceptor-ref name="mystack"/> </action>
⑥ 编写tip.jsp页面,实现若干秒中之后自动返回登录页
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> <title></title> <link rel="stylesheet" href="css/style2.css" type="text/css"></link> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.query-2.1.7.js"></script> <script type="text/javascript"> $(document).ready(function(){ delayURL("index.jsp"); }); </script> <script type="text/javascript"> function delayURL(url) {var delay = document.getElementById("time").innerHTML;if(delay > 0) {delay--;document.getElementById("time").innerHTML = delay;} else {window.top.location.href = url;}setTimeout("delayURL('" + url + "')", 1000);}</script> </head> <body background="images/bg-login.gif"> <label style="font-size: 13px;color: #FFFFFF;font-weight: bold;">由于长时间未操作,请</label> <span id="time" style="color: red;font-weight: bold;" >5</span> <label style="font-size: 13px;color: #FFFFFF;font-weight: bold;">秒钟后自动跳转首页,重新登录。</label> <p> <label style="font-size: 13px;color: #FFFFFF;font-weight: bold;">如果不跳转,请点击下面的链接:</label> <a href="index.jsp" style="font-size: 13px">百度</a> </p> </body></html>
结束....
0 0
- Struts2 设置定时器监听销毁session(若干秒后自动返回首页)
- 系统在10秒后返回首页
- session监听销毁跳转
- MsgBox若干秒后自动关闭的方法
- js系统5秒后自动返回
- 监听session创建和销毁
- 系统将于5秒后自动返回
- js 3秒后自动返回指定页面
- Java设置session超时(失效)的时间 在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session 具体设置的方法有三种:
- struts2设置默认首页
- httpSessionListener 监听session 创建与销毁
- java web session监听销毁跳转
- java web session监听销毁跳转
- java web session监听销毁跳转
- 监听session会话创建与销毁
- SessionFilter session的创建和销毁监听
- 问题:避免销毁session后,浏览器可以返回上一个带数据的页面
- Yii-跳转页面-用法设置N秒后自动跳转
- ubuntu 下 apt tomcat的几个问题
- 文件操作
- 氙灯点亮的问题,拿下了
- Java中final关键字的使用
- 第1讲:The nature of Testing--测试的本质
- Struts2 设置定时器监听销毁session(若干秒后自动返回首页)
- 使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
- 数据库设计中的14个技巧
- HTTP BASIC AUTH
- 做纯粹的 Android
- 【后缀数组】 POJ Milk Patterns
- python抓取伯乐在线的所有文章,对标题分词后存入mongodb中
- android中Activity的四种加载模式
- jquery学习笔记-购物车表单简单实现