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
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 673类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8521.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 834Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6751.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6761.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6501、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6231.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17811.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8691.在拦截器中获得用户登录的session 在LoginC ... -
Struts2学习笔记day04
2012-07-12 00:31 6191.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 716Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 764Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 806Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2学习笔记day03
2012-07-11 19:09 9471.值栈:ValueStack,存储数 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1187在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6651.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10461.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6521.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7291.在opt.jsp页面 <%@ page langu ...
相关推荐
通过`<package>`标签的`default-interceptor-ref`属性,可以指定默认拦截器栈,或者在具体的Action配置中使用`interceptor-ref`引用特定的拦截器栈。 **5. 拦截器的生命周期** 拦截器的生命周期包括实例化、初始化...
拦截器在Struts2中扮演着至关重要的角色,它们是AOP(面向切面编程)的一个实现,用于在Action执行前后插入额外的功能。下面将详细探讨Struts2拦截器及其工作原理。 ### 一、Struts2 拦截器概念 1. **拦截器是什么...
在Struts2中,这些处理逻辑被封装在独立的类中,当请求到达Action之前,拦截器会按照预定义的顺序执行,执行完后再继续进行Action处理,最后返回结果。拦截器可以用于日志记录、权限验证、性能监控等多种场景。 **...
在Struts2中,拦截器(Interceptor)扮演着核心角色,它们允许开发者在Action执行前后插入自定义的逻辑,如日志、权限检查、事务管理等。现在我们将深入探讨Struts2的拦截器机制及其实例应用。 ### 一、Struts2拦截...
在本学习案例中,重点在于Struts2的拦截器(Interceptor)功能,这是Struts2的核心特性之一,它允许开发者在Action执行前后进行自定义处理,实现了灵活的业务逻辑控制和增强的功能。 首先,我们来理解一下什么是...
通过这个例子,你可以学习到如何创建、注册拦截器,以及如何在Struts2框架中构建拦截器栈,从而更灵活地管理应用程序的行为。 总结来说,Struts2的拦截器机制提供了强大的功能,允许开发者以声明式的方式控制请求的...
Struts2 框架是Java Web开发中的一个流行选择,它提供了一种优雅的方式来组织和控制MVC(模型-视图-控制器)应用程序。拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在...
在Struts2框架中,拦截器主要用于对Action执行前后的过程进行干预,以便执行一些通用的功能,如验证用户输入、记录日志、事务管理等。 - **拦截器的核心功能**:Struts2拦截器可以动态地拦截发送到指定Action的请求...
在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它定义了`intercept()`方法,该方法会在Action执行之前和之后被调用,从而实现对请求的拦截和处理。 ### 二、拦截器栈与配置 Struts2中的拦截器不是单独...
当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。拦截器可以进行如权限验证、日志记录、性能监控等多种操作。 2. **创建自定义拦截器** 创建自定义拦截...
1. `intercept(ActionInvocation invocation)`: 这是拦截器的主要方法,它被Struts2框架调用来执行拦截逻辑。`ActionInvocation`对象包含了当前Action执行的所有信息,如Action上下文、Action实例、方法名等。你需要...
当请求到达时,拦截器按照定义的顺序逐个执行,直到到达Action,然后回溯执行拦截器,最后返回响应。通过这种方式,我们可以添加额外的行为,比如记录日志、权限检查或数据校验,而无需修改Action代码。 在登录控制...
3. 在调用Action之前,Struts2会按照配置的顺序依次执行拦截器链。 4. 每个拦截器可以决定是否允许请求继续传递到下一个拦截器或直接终止。例如,一个登录拦截器可能会检查用户是否已登录,如果未登录则跳转到登录...
拦截器在Struts 2中是一种强大的机制,用于在Action调用前后插入自定义的行为,比如日志记录、权限检查、事务管理等。 1. **什么是拦截器?** 拦截器可以看作是Java动态代理的一种应用,它在Action执行前和执行后...
在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作执行前后插入自定义逻辑。在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何...
在Struts2框架中,拦截器扮演着至关重要的角色,它们是实现业务逻辑、验证、日志记录等功能的核心组件。下面将详细探讨Struts2拦截器的源码及其工作原理。 首先,理解拦截器的定义:拦截器是AOP(面向切面编程)的...
在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如日志记录、权限检查、数据验证等操作,极大地提高了代码的复用性和可维护性。 首先,我们需要理解拦截器的工作原理。在Struts2框架...
在Struts2中,拦截器工作在Action和结果(Result)之间,形成一个拦截器栈,每个拦截器按照配置的顺序依次执行。 Struts2的拦截器执行流程如下: 1. **初始化拦截器栈**:当Struts2框架启动时,会根据配置文件...
在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外的功能,如日志记录、事务管理、权限验证等。对于权限控制,拦截器可以在请求到达Action之前检查用户的登录状态...