自定义时间拦截器

本文展示了如何在Struts2中创建一个自定义时间拦截器`MyTimerInter`,该拦截器在目标方法执行前后记录时间,用于性能监控。在`struts.xml`配置文件中定义了拦截器、拦截器栈,并将自定义拦截器集成到默认拦截器栈中。同时提供了一个`MyTimerInterAction`行动类,包含say()方法,与拦截器配合工作。最终展示了一个简单的JSP页面显示拦截器的效果。

struts.xml文件

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <package name="inter" extends="struts-default"namespace="/">

       <!-- 拦截器的载入声明 -->

       <interceptors>

           <!-- 声明一个自定义的拦截器 -->

           <interceptor name="myTimer"class="cn.csdn.time.inter.MyTimerInter"/>

           <!-- 声明一个自定义的拦截器栈 -->

           <interceptor-stack name="myStack">

              <!-- 将声明的自定义拦截器放到自定义的拦截器栈中 -->

              <interceptor-ref name="myTimer"/>

              <!-- 将struts2中自带的拦截器栈放到自定义的拦截器栈中 -->

              <interceptor-ref name="defaultStack"/>

           </interceptor-stack>

       </interceptors>

       <!-- 声明缺省的自定义拦截器栈 -->

       <default-interceptor-ref name="myStack"/>

       <action name="myTimer"class="cn.csdn.time.inter.MyTimerInterAction"method="say">

           <result>./MyTimerInter.jsp</result>

       </action>

    </package>

</struts>

 

自定义一个时间拦截器

public class MyTimerInter implements Interceptor{

 

    public void destroy() {

       // TODO Auto-generatedmethod stub

       System.out.println("自定义时间拦截器-------销毁的时候执行.........");

    }

    public void init() {

       // TODO Auto-generatedmethod stub

       System.out.println("自定义时间拦截器-------初始化的时候执行.........");

    }

    public String intercept(ActionInvocation invocation) throws Exception {

       // TODO Auto-generatedmethod stub

       //得到当前处理的action,返回的是一个object对象

       Object obj=invocation.getAction();

       //定义一个表示时间的参数

       long time=System.currentTimeMillis();//获取的是当前的毫秒数

       System.out.println("目标方法执行之前========");

       String result=invocation.invoke();//调用系统的invoke()方法

       System.out.println("目标方法执行之后=========时间差为"+(System.currentTimeMillis()-time));

      

       return result;

    }

}

 

MyTimerInterAction.class中的say()方法

    public String say(){

       System.out.println("我是action方法哟!");

       return SUCCESS;

    }

 

最终跳转到的页面MyTimerInter.jsp

<h1>我是自定义的时间拦截器的jsp页面</h1>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值