[例15.3] 为 Action 对象配置输出执行时间的拦截器, 查看执行 Action 所需时间

15.3.2 拦截器 API
拦截器接口的代码如下:
   
   
package com.opensymphony.xwork2.interceptor;
public interface Interceptor extends Serializable{
void init()
void destroy()
String intercept(ActionInvocation invocation) throws Excetion;
}
如需自定义拦截器实现, 可以继承 AbstractInterceptor 类, 该类实现了 Interceptor 接口.

15.3.3 使用拦截器
在 Struts2 框架中, 如果创建了一个拦截器对象, 需要对拦截器进行配置才可以应用到 Action 对象上. 其中拦截器的创建比较简单, 可以通过继承 AbstractInterceptor 对象进行创建, 而它使用 <interceptor-ref> 标签进行配置. 
[例15.3] 为 Action 对象配置输出执行时间的拦截器, 查看执行 Action 所需时间. (disc\TM\sl\15\2)
(1) 创建动态的 Java Web 项目, 将 Struts2 的相关类包添加到项目的 classpath, 并在 web.xml 文件中注册 Struts2 提供的 StrutsPrepareAndExecuteFilter过滤器, 从而搭建 Struts2 的开发环境.
(2) 创建名为 TestAction 的类, 该类继承于 ActionSupport 对象.
   
   
public class TestAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public String execute() throws Exception{
// 线程睡眠1秒
Thread.sleep(1000);
return SUCCESS;
}
}
(3) 在 struts.xml 配置文件中配置 TestAction 对象, 并将输出 Action 执行时间的拦截器 timer 应用到 TestAction 上. 关键代码如下:
   
   
<struts>
<!-- 声明常量(开发模式) -->
<constant name="struts.devMode" value="true" />
<!-- 声明常量(在Struts2的配置文件修改后,自动加载) -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 声明包 -->
<package name="myPackge" extends="struts-default">
<!-- 配置Action -->
<action name="testAction" class="com.lyq.action.TestAction">
<!-- 配置拦截器 -->
<interceptor-ref name="timer" />
<!-- 配置返回页面 -->
<result>success.jsp</result>
</action>
</package>
</struts>
技巧: 如果需要查看一个 Action 对象执行所需时间, 可以为其配置 timer 拦截器, timer 拦截器是 Struts2 的内置拦截器, 不需要对其进行创建及编写, 直接配置即可.
(4)创建首页index.jsp及TestAction的返回页面 success.jsp, 由于实例测试 timer拦截器的使用, 没有过多的设置.
图15.7 实例运行结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值