Struts2拦截器关于解决登录的问题-创新互联

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

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

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

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

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

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

自定义一个拦截器如下:

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

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

3、在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器(<default-interceptor-ref name="myStack"/>),

这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截<param name="excludeMethods">loginView,login</param>。

①Interceptor接口声明三个方法:

public class LoginInterceptor implements Interceptor {

 private Map<String,Object> 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";
  }

}

注:该方法可以不加:<param name="excludeMethods">loginView,login</param>

网页题目:Struts2拦截器关于解决登录的问题-创新互联
链接分享:https://www.cdcxhl.com/article22/dgeecc.html

成都网站建设公司_创新互联,为您提供企业网站制作网站设计微信公众号商城网站动态网站网站导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设