博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2自定义拦截器 模拟session超时的处理
阅读量:4079 次
发布时间:2019-05-25

本文共 3952 字,大约阅读时间需要 13 分钟。

实例功能:当用户登陆成功后,若session超时则返回到登陆页面重新登陆。

1、  用户登陆

2、  若登陆成功,会跳转到成功页面,否则会跳转到session失效提示页面

 配置session失效时间,修改web.xml

<
session
-
config
>
<
session
-
timeout
>
1

           

登陆页面

<%   
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
<%
request.getSession().setAttribute(
"
user
"
,
"
林计钦
"
);
%>
用户已经登录

              

Action类

package   
com.ljq.action;
public
class
HelloWorldAction {
public
String login() {
return
"
success
"
; }}

              

session拦截器

package   
com.ljq.interceptor;
import
com.opensymphony.xwork2.ActionContext;
import
com.opensymphony.xwork2.ActionInvocation;
import
com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 自定义session拦截器,30s后失效 *
*
*/
@SuppressWarnings(
"
serial
"
)
public
class
SessionIterceptor
extends
AbstractInterceptor{ @Override
public
String intercept(ActionInvocation invocation)
throws
Exception { ActionContext ctx
=
invocation.getInvocationContext(); String user
=
(String)ctx.getSession().get(
"
user
"
);
if
(user
!=
null
&&
user.equals(
"
林计钦
"
)){
return
invocation.invoke(); }
//
如果超时,返回提示页面
return
"
index
"
; }}

            

struts.xml配置文件

<
struts
>
<
constant name
=
"
struts.i18n.encoding
"
value
=
"
UTF-8
"
/>
<
constant name
=
"
struts.enable.DynamicMethodInvocation
"
value
=
"
false
"
/>
<
constant name
=
"
struts.action.extension
"
value
=
"
do
"
/>
<
package
name
=
"
login
"
namespace
=
"
/login
"
extends
=
"
struts-default
"
>
<
interceptors
>
<
interceptor name
=
"
permission
"
class
=
"
com.ljq.interceptor.SessionIterceptor
"
/>
<
interceptor
-
stack name
=
"
permissionStack
"
>
<
interceptor
-
ref name
=
"
permission
"
/>
<
interceptor
-
ref name
=
"
defaultStack
"
/>
<
default
-
interceptor
-
ref name
=
"
permissionStack
"
/>
<
global
-
results
>
<
result name
=
"
success
"
>/
WEB
-
INF
/
page
/
message.jsp
<
action name
=
"
*HelloWorld
"
class
=
"
com.ljq.action.HelloWorldAction
"
method
=
"
{1}
"
>
<
result name
=
"
index
"
>/
index.jsp

转载地址:http://gdnni.baihongyu.com/

你可能感兴趣的文章
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
《软件体系结构》 第九章 软件体系结构评估
查看>>
《软件体系结构》 第十章 软件产品线体系结构
查看>>
《软件过程管理》 第六章 软件过程的项目管理
查看>>
《软件过程管理》 第九章 软件过程的评估和改进
查看>>
分治法 动态规划法 贪心法 回溯法 小结
查看>>
《软件体系结构》 练习题
查看>>
《数据库系统概论》 第一章 绪论
查看>>
《数据库系统概论》 第二章 关系数据库
查看>>
《数据库系统概论》 第三章 关系数据库标准语言SQL
查看>>
SQL语句(二)查询语句
查看>>
SQL语句(六) 自主存取控制
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
堆排序完整版,含注释
查看>>
二叉树深度优先遍历和广度优先遍历
查看>>
生产者消费者模型,循环队列实现
查看>>
PostgreSQL代码分析,查询优化部分,process_duplicate_ors
查看>>
PostgreSQL代码分析,查询优化部分,canonicalize_qual
查看>>
PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()
查看>>
IA32时钟周期的一些内容
查看>>