Struts拦截器简单实用--用户是否有效

在用户登录以后,用户一段时间不进行任操作,session已经失效了,但是用户又想在当前操作界面上继续操作,此时我们的拦截器就有用武之地了:

首先编写拦截器实现类:

package jf;

import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class SessionsInterceptor extends AbstractInterceptor

{

 private static final long serialVersionUID = -740106586199968939L;

 @Override
 public String intercept(ActionInvocation invocation) throws Exception

 {
  /**取得请求相关的ActionContext实例**/
  ActionContext ac=invocation.getInvocationContext();
  Map session=(Map) ac.get(ServletActionContext.SESSION);
  
  /**判断session是否失效**/
  if(session!=null)

{
   String userId=(String)session.get("userId");//当前操作用户id
   String userName=(String)session.get("userName");//当前操作用户名
   if(userId==null||"".equals(userId)||userName==null||"".equals(userName))

   {
    return "relogin";//session失效,重新登陆
   }
  }
  return invocation.invoke();//session没有失效,返回执行所要执行的action

 }

}

然后在所有你要拦截的xml配置文件中添加:

<interceptors>
   <interceptor name="sessionInterceptor"
    class="jf.SessionsInterceptor">
   </interceptor>
  </interceptors>
  <global-results>
   <result name="relogin">/html/login/nologin.jsp</result>
  </global-results>

 

你再测试下,是否用户重新登录后又能进行相应的操作了。其实拦截器还有很多地方可以应用,比如编码问题等等。。。

这个就要具体实用具体考虑了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值