zoukankan      html  css  js  c++  java
  • struts2中的方法过滤拦截器

    方法过滤拦截器是只过滤指定的方法,如果使用针对action 的普通的过滤器则会过滤该action内部 所有方法。如果在一个action中同时有多个作为业务逻辑控制的方法存在 的话则会过滤所有的业务逻辑控制方法。当然在一个action中出现超过一个业务逻辑控制方法是不推荐的,也是不符合编码规范的但是这样的形式是可以存在的。为了避免这样的bug采用方法过滤器是最佳选择。

    配置文件为:

    <action name="login" class="com.inspur.action.LoginAction">
       <result name="success">/success.jsp</result>
       <result name="input">/login.jsp</result>
       <interceptor-ref name="defaultStack"></interceptor-ref>
       <interceptor-ref name="methodInterceptor">
        <param name="name">second</param>
        <param name="excludeMethods">execute</param>
        <param name="includeMethods">execute</param>
       </interceptor-ref>
      </action>

    方法过滤器类代码如下:

    package com.inspur.interceptor;

    import java.util.Date;

    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

    public class MethodInter extends MethodFilterInterceptor {
     private String name;
     

     public String getName() {
      return name;
     }


     public void setName(String name) {
      this.name = name;
     }


     @Override
     protected String doIntercept(ActionInvocation invocation) throws Exception {
      System.out.println(name+"start time"+new Date());
      long start=System.currentTimeMillis();
      String result=invocation.invoke();
      System.out.println(name+"end time"+new Date());
      long end=System.currentTimeMillis();
      System.out.println("total time"+(end-start));
      return result;
     }

    }

    重写抽象类MethodFilterInterceptor的回调方法dointercept()方法实现方法拦截。与普通的拦截器的区别是普通拦截器重写的是intercept()方法。

  • 相关阅读:
    锋利的jQuery复制粘贴(一)
    使用photoshop以及markman进行快速重构页面的几个步骤
    线程间同步之 semaphore(信号量)
    关于C#中Thread.Join()的一点理解
    无废话WCF入门教程一[什么是WCF]
    Oracle function注释
    throw new DataException("检查服务器是否存在失败:" + ex);
    C# 将数据集以excel的形式输出
    .net 安装remoting服务
    任务计划 每日删除设定目录内的文件(包括文件夹)
  • 原文地址:https://www.cnblogs.com/moonfans/p/3165148.html
Copyright © 2011-2022 走看看