Struts2拦截器关于解决登录的问题-创新互联-古蔺大橙子建站
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Struts2拦截器关于解决登录的问题-创新互联

Struts2拦截器 关于解决登录的问题

创新互联建站作为成都网站建设公司,专注网站建设、网站设计,有关企业网站制作方案、改版、费用等问题,行业涉及成都报废汽车回收等多个领域,已为上千家企业服务,得到了客户的尊重与认可。

拦截器的工作原理如图 拦截器是由每一个action请求(request)都包装在一系列的拦截器的内部,通过redirectAction再一次发送请求。

拦截器可以在Action执行直线做相似的操作也可以在Action执行直后做回收操作。

我们可以让每一个Action既可以将操作转交给下面的拦截器,Action也可以直接退出操作返回客户既定的画面。

接下来我们该如何定义一个拦截器:

自定义一个拦截器如下:

1、实现Interceptor接口或者继承AbstractInterceptor抽象类。

2、创建一个Struts.xml文件进行定义拦截器。

3、在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器(),

这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截loginView,login。

①Interceptor接口声明三个方法:

public class LoginInterceptor implements Interceptor {

 private Map session = null;
 public void destroy() { }
 public void init() { }
 public String intercept(ActionInvocation actionInvocation) throws Exception {
 8     Object myAction = actionInvocation.getAction();
  if(myAction instanceof UserAction){
   System.out.println("你访问的Action是UserAction,不要校验Session,否则死循环");
   //放行
   return actionInvocation.invoke();
  }else{
   System.out.println("你访问的Action是:"+myAction);
  }

  session = ActionContext.getContext().getSession();
  Object user = session.get("user");
  if (user!=null){
   return actionInvocation.invoke();
  }else{
   return "login";
  }

}

注:该方法可以不加:loginView,login

名称栏目:Struts2拦截器关于解决登录的问题-创新互联
链接分享:http://scgulin.cn/article/dgeecc.html