Struts2自定义拦截器实例—Session超时的处理

版本:struts2.1.6

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

为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟

修改web.xml

1

 

此实例用到的jsp页面及登陆所涉及到的相关代码请参考:

Struts2自定义拦截器实例—登陆权限验证

 

实现自定义拦截器类

package com.ywjava.interceptor; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.ywjava.action.LoginAction; import com.ywjava.utils.Constants; public class SessionIterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation actionInvocation) throws Exception { ActionContext ctx = ActionContext.getContext(); Map session = ctx.getSession(); Action action = (Action) actionInvocation.getAction(); if (action instanceof LoginAction) { return actionInvocation.invoke(); } String userName = (String) session.get(Constants.USER_SESSION); if (userName == null) { return Action.LOGIN; } else { return actionInvocation.invoke(); } } }

 

struts.xml中定义并使用此拦截器

/login.jsp /login.jsp /welcome.jsp /login.jsp /login.jsp /show.jsp

 

当我们登陆后一分钟不做任何操作刷新后则会跳转到登陆页面

你可能感兴趣的:(struts,session,class,action,login,string)