`

Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值

 
阅读更多

1.在LoginAction.java中,extends ActionSupport

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		//判断用户的执行效率
		for (int i = 0; i < 1000000; i++) {
			
		}
		System.out.println("OK");
		System.out.println(" Action Execute...");
		return SUCCESS;
	}
}

 2.MyInterceptor.java中extends AbstractInterceptor

package com.jsu.struts2.interceptor;

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

public class MyInterceptor extends AbstractInterceptor {
	private String test;//测试属性
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		System.out.println("Interceptor Start..."+test);
		long start = System.currentTimeMillis();
		String path=invocation.invoke();
		System.out.println("Interceptor end....");
		long end = System.currentTimeMillis();
		System.out.println("My 1 END 程序执行时长=" + (end - start));
		return path;
	}

	public String getTest() {
		return test;
	}

	public void setTest(String test) {
		this.test = test;
	}

}
 

 3.在struts.xml中配置

<struts>
	<package name="loginDemo" namespace="/" extends="struts-default">
			<interceptors>
			<interceptor name="MyInterceptor" class="com.jsu.struts2.interceptor.MyInterceptor"></interceptor>
			<!-- 如果有多个拦截器一起调用,配置拦截器栈,拦截器栈也能引用拦截器栈 -->
			<interceptor-stack name="myStack">
				<interceptor-ref name="MyInterceptor">
					<param name="test">拦截器的第一个参数</param>
				</interceptor-ref>
			</interceptor-stack> 
		</interceptors>
		<action name="login" class="com.jsu.struts2.action.LoginAction">
		<interceptor-ref name="myStack">
			<!-- 修改拦截器属性的初始值 -->
			<param name="MyInterceptor.test">修改后的拦截器第一个参数</param>
		</interceptor-ref>
		<interceptor-ref name="defaultStack"></interceptor-ref>
		<result>/index.jsp</result>
		</action>
	</package>
</struts>

 4.页面发送请求http://localhost:8080/struts2_04/login

分享到:
评论

相关推荐

    Struts2拦截器源程序

    通过`&lt;package&gt;`标签的`default-interceptor-ref`属性,可以指定默认拦截器栈,或者在具体的Action配置中使用`interceptor-ref`引用特定的拦截器栈。 **5. 拦截器的生命周期** 拦截器的生命周期包括实例化、初始化...

    struts2 拦截器

    拦截器在Struts2中扮演着至关重要的角色,它们是AOP(面向切面编程)的一个实现,用于在Action执行前后插入额外的功能。下面将详细探讨Struts2拦截器及其工作原理。 ### 一、Struts2 拦截器概念 1. **拦截器是什么...

    Struts2拦截器及其用法详细说明

    在Struts2中,这些处理逻辑被封装在独立的类中,当请求到达Action之前,拦截器会按照预定义的顺序执行,执行完后再继续进行Action处理,最后返回结果。拦截器可以用于日志记录、权限验证、性能监控等多种场景。 **...

    struts2 拦截器实例

    在Struts2中,拦截器(Interceptor)扮演着核心角色,它们允许开发者在Action执行前后插入自定义的逻辑,如日志、权限检查、事务管理等。现在我们将深入探讨Struts2的拦截器机制及其实例应用。 ### 一、Struts2拦截...

    Struts2学习案例(拦截器)

    在本学习案例中,重点在于Struts2的拦截器(Interceptor)功能,这是Struts2的核心特性之一,它允许开发者在Action执行前后进行自定义处理,实现了灵活的业务逻辑控制和增强的功能。 首先,我们来理解一下什么是...

    struts2拦截器应用小例子

    通过这个例子,你可以学习到如何创建、注册拦截器,以及如何在Struts2框架中构建拦截器栈,从而更灵活地管理应用程序的行为。 总结来说,Struts2的拦截器机制提供了强大的功能,允许开发者以声明式的方式控制请求的...

    Struts2 拦截器

    Struts2 框架是Java Web开发中的一个流行选择,它提供了一种优雅的方式来组织和控制MVC(模型-视图-控制器)应用程序。拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在...

    详解Struts2拦截器

    在Struts2框架中,拦截器主要用于对Action执行前后的过程进行干预,以便执行一些通用的功能,如验证用户输入、记录日志、事务管理等。 - **拦截器的核心功能**:Struts2拦截器可以动态地拦截发送到指定Action的请求...

    Struts2拦截器原理分析

    在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它定义了`intercept()`方法,该方法会在Action执行之前和之后被调用,从而实现对请求的拦截和处理。 ### 二、拦截器栈与配置 Struts2中的拦截器不是单独...

    创建自己struts2拦截器

    当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。拦截器可以进行如权限验证、日志记录、性能监控等多种操作。 2. **创建自定义拦截器** 创建自定义拦截...

    struts2 拦截器的使用(继承抽象拦截器)

    1. `intercept(ActionInvocation invocation)`: 这是拦截器的主要方法,它被Struts2框架调用来执行拦截逻辑。`ActionInvocation`对象包含了当前Action执行的所有信息,如Action上下文、Action实例、方法名等。你需要...

    struts2 拦截器实现登录控制

    当请求到达时,拦截器按照定义的顺序逐个执行,直到到达Action,然后回溯执行拦截器,最后返回响应。通过这种方式,我们可以添加额外的行为,比如记录日志、权限检查或数据校验,而无需修改Action代码。 在登录控制...

    struts2拦截器

    3. 在调用Action之前,Struts2会按照配置的顺序依次执行拦截器链。 4. 每个拦截器可以决定是否允许请求继续传递到下一个拦截器或直接终止。例如,一个登录拦截器可能会检查用户是否已登录,如果未登录则跳转到登录...

    struts拦截器的例子

    拦截器在Struts 2中是一种强大的机制,用于在Action调用前后插入自定义的行为,比如日志记录、权限检查、事务管理等。 1. **什么是拦截器?** 拦截器可以看作是Java动态代理的一种应用,它在Action执行前和执行后...

    Struts2拦截器实现权限控制demo

    在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作执行前后插入自定义逻辑。在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何...

    Struts2拦截器源码

    在Struts2框架中,拦截器扮演着至关重要的角色,它们是实现业务逻辑、验证、日志记录等功能的核心组件。下面将详细探讨Struts2拦截器的源码及其工作原理。 首先,理解拦截器的定义:拦截器是AOP(面向切面编程)的...

    struts2.X 拦截器源码

    在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如日志记录、权限检查、数据验证等操作,极大地提高了代码的复用性和可维护性。 首先,我们需要理解拦截器的工作原理。在Struts2框架...

    Struts2拦截器的实现原理(csdn)————程序.pdf

    在Struts2中,拦截器工作在Action和结果(Result)之间,形成一个拦截器栈,每个拦截器按照配置的顺序依次执行。 Struts2的拦截器执行流程如下: 1. **初始化拦截器栈**:当Struts2框架启动时,会根据配置文件...

    struts2拦截器实现权限控制

    在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外的功能,如日志记录、事务管理、权限验证等。对于权限控制,拦截器可以在请求到达Action之前检查用户的登录状态...

Global site tag (gtag.js) - Google Analytics