我照着Max的例子做了struts2拦截器的测试,测试的是timer拦截器,
java代码:
//2008-5-12 下午07:08:14 by fornever
package com.meteora.myInterceptor;
import com.opensymphony.xwork2.ActionSupport;
public class Timer extends ActionSupport {
private static final String SUCCESS = "success";
public String execute(){
try {
Thread.sleep(1000);// 模拟耗时的操作
} catch (InterruptedException e) {
e.printStackTrace();
}
return SUCCESS;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 该文件主要放置Struts 2 的Action定义 -->
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- struts 是 Struts 2 配置文件的根元素 -->
<struts>
<!-- Struts 2 的 Action 必须放在指定的包空间下定义 -->
<package name="Struts2" extends="struts-default">
<!-- 定义login的Action,指定类为com.meteora.login.LoginAction类 -->
<action name="Login" class="com.meteora.login.LoginAction">
<result name="success">/success.jsp</result>
<result name="failure">/failure.jsp</result>
<result name="input">/login.jsp</result>
</action>
<action name="GetBooks"
class="com.meteora.login.GetBooksAction">
<result name="success">/showBooks.jsp</result>
<result name="login">/empty.jsp</result>
</action>
<action name="Fileupload"
class="com.meteora.fileupload.FileuploadAction">
<interceptor-ref name="fileUpload"></interceptor-ref>
<result name="success">/ShowUpload.jsp</result>
</action>
</package>
<package name="myInterceptor" extends="struts-default">
<interceptors>
<!-- 定义一个拦截器 -->
<interceptor name="auth" class="com.meteora.myInterceptor.AuthorizationInterceptor" />
</interceptors>
<action name="RoleLogin" class="com.meteora.myInterceptor.Login">
<result type="chain">AuthorizationAccess</result>
</action>
<action name="AuthorizationAccess" class="com.meteora.myInterceptor.AuthorizationAccess">
<interceptor-ref name="auth" /><!-- 引用上面定义的拦截器 -->
<result name="login">/myInterceptor/Login.jsp</result>
<result name="success">/myInterceptor/ShowUser.jsp</result>
</action>
<action name="Timer" class="com.meteora.myInterceptor.Timer">
<interceptor-ref name="completeStack"/>
<interceptor-ref name="timer">
</interceptor-ref>
<result name="success">/myInterceptor/Timer.jsp</result>
<!-- 如果为Action指定了一个拦截器,则系统默认的拦截器栈将会失去作用。
为了继续使用默认拦截器,所以上面配置文件中手动引入了默认拦截器。 -->
</action>
</package>
</struts>
Timer.jsp代码,按照max文章中说的这个随便写
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>授权用户</title>
</head>
<body>
<h1>你的角色是:<s:property value="role"/></h1>
</body>
</html>
按照文章中访问:http://localhost:8080/Struts2/Timer.action,正常显示,而控制台这边应该显示调用这个action所用的时间,但是什么都没显示。
我的struts2 版本是 2.0.11.1,jdk 1.6_u5,j2ee 1.4库,myeclipse 5.5+eclipse 3.2开发环境
分享到:
- 2008-05-13 13:35
- 浏览 3225
- 评论(1)
- 论坛回复 / 浏览 (1 / 3669)
- 查看更多
相关推荐
Struts2提供了一系列内置的拦截器,这些拦截器可以方便地被添加到配置文件中来增强应用的功能。 #### 1. 概述 Struts2的内置拦截器主要包括以下几类:用于异常处理、参数绑定、会话管理、调试等功能。每个拦截器都...
Struts2提供了一系列内置的拦截器,如`params`拦截器用于处理请求参数,`exception`拦截器处理异常,`i18n`拦截器实现国际化,`chain`拦截器使请求继续执行下一个Action,`timer`记录Action的执行时间等。这些拦截...
与Servlet规范中的Filter相比,虽然两者都用于处理请求,但拦截器在Struts2中具有独立的生命周期和更灵活的调用顺序管理。 4.1.1 拦截器的调用时机与流程 拦截器的调用主要由`...
2. **配置拦截器**: 在Struts2的配置文件(如`struts.xml`或`struts-default.xml`)中,使用`<interceptors>`标签定义拦截器,`<interceptor>`标签定义单个拦截器,通过`name`属性指定拦截器名,`class`属性指定拦截...
- 在Struts2的配置文件(通常为struts.xml或类似的XML配置文件)中,可以通过`<interceptors>`标签定义拦截器栈,`<interceptor>`标签定义单个拦截器,`<interceptor-ref>`引用已定义的拦截器。 - 使用`<package>`...
### Struts2内置拦截器简介 ...通过上述介绍,我们可以看出Struts2的内置拦截器覆盖了Web开发中的大部分常见需求,极大地简化了开发者的工作量。合理配置和使用这些拦截器能够显著提升应用程序的质量和开发效率。
Struts 2 框架中的拦截器是其核心组件之一,主要负责在Action执行前后进行额外的操作,如参数绑定、验证、权限控制等。在`struts-default`配置中,许多默认的拦截器组合成预设的拦截器栈,为开发者提供了便捷的功能...
Struts2 框架中的拦截器(Interceptor)是一个强大的工具,它允许开发者在Action执行前后插入自定义逻辑,如日志记录、性能监控、权限验证等。拦截器的运用大大提高了应用程序的灵活性和可扩展性,使得业务逻辑与...
例如,在上面的代码中,我们定义了两个拦截器,分别名为 "timer" 和 "logger",并将其组合到一个名为 "mystack" 的拦截器栈中。 Default Interceptor Ref 元素 Default Interceptor Ref 元素用于定义默认的拦截器...
在Struts2中,拦截器扮演着至关重要的角色,它们是基于AOP(面向切面编程)概念的,允许开发者在Action执行前后插入自定义逻辑,从而极大地提高了代码的可维护性和可扩展性。 1. 拦截器是在Action执行之前和Action...
在"structs2拦截器实例计算action执行的时间"这个主题中,我们关注的是如何使用拦截器来测量Action执行的时间,这有助于优化代码性能和诊断问题。以下是实现这个功能的一般步骤: 1. **创建拦截器**:首先,你需要...
《Struts2配置文件宝典》一文详细阐述了Struts2框架中配置文件的核心概念与实践技巧,尤其聚焦于如何高效地管理拦截器、包(package)以及Action的配置,为开发者提供了一套全面而深入的理解框架配置的指南。...
3. **Struts2示例**:在Struts2框架中,当请求到达ServletDispatcher时,框架会根据配置文件查找并实例化对应的拦截器对象,然后将这些对象串联成一个列表,最后依次调用列表中的拦截器。 #### 三、拦截器的配置 ...
`struts.xml`文件是Struts2框架的核心配置文件,它用于定义应用程序的各种配置信息,包括但不限于包(Package)、拦截器(Interceptors)、默认拦截器(Default Interceptor)、全局结果(Global Results)以及...
拦截器是Struts2中非常重要的组成部分,它可以对Action进行预处理或后处理。 - **name**: 拦截器的名称。 - **class**: 拦截器对应的实现类。 示例: ```xml <interceptor name="timer" class="com.kay.timer"/> ...
- `<interceptor name="timer" class="com.kay.timer"></interceptor>`:拦截器是Struts2中非常重要的组件之一,它可以用来拦截Action的执行过程,实现如权限验证、数据验证等功能。 - **name**:拦截器名称。 - ...
总结来说,"简单的Struts2小程序"涵盖了Struts2框架的基础元素:Action类、配置文件、拦截器和标签库的使用。通过这个小程序,开发者可以了解如何在实际项目中运用Struts2来处理用户请求、执行业务逻辑以及展示结果...
如果Action中引用了其它的拦截器 默认的拦截器将无效 --> <default-interceptor-ref name="mystack"></default-interceptor-ref> <!-- 全局results配置 --> <result name="input">/error.jsp ...
- **struts.xml**:这是最常用的配置文件,用户可以在此文件中定义包(package)、Action、拦截器等。 - **struts.properties**:主要用于配置Struts2的属性值,如常量配置等。 - **web.xml**:Web容器级别的配置...