- 浏览: 1592697 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
1.默认情况下,如果为某个Action配置拦截器,则这个拦截器将拦截Action中的所有方法。但是有时候并不是想拦截Action中的所有方法,而是值需要拦截其中某一个,或者某几个方法,此时就需要使用拦截器的方法过滤特性了。
为了实现拦截器的方法过滤特性,Struts2提供了一个MethodFiledInterceptor抽象类。这个类重写了AbstractInterceptor类中的interceptor()方法,并且提供了doInteceptor(ActionInvocation invocation)抽象方法。
2,方法过滤参数
定义拦截器类
action
struts.xml
--访问地址
http://localhost:8080/Struts2_inteceptorMethod/method!login.action
可以看到拦截器没有拦截
http://localhost:8080/Struts2_inteceptorMethod/method.action
可以看到拦截器拦截了
为了实现拦截器的方法过滤特性,Struts2提供了一个MethodFiledInterceptor抽象类。这个类重写了AbstractInterceptor类中的interceptor()方法,并且提供了doInteceptor(ActionInvocation invocation)抽象方法。
2,方法过滤参数
excluedMethods:执行拦截器拒绝拦截的方法列表,如果有多个方法名之间使用英文“,”分割,例如指定该参数值为login,register 那么拦截器将不会拦截login()he register()方法。 includeMethods:指定拦截器需要拦截的方法,如果有多个方法,则用英文“,”分割。例如指定该参数值为 method1,method2,那么拦截器将拦截method1和method2方法();
定义拦截器类
package com.sh.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class MethodInterceptor extends MethodFilterInterceptor { @Override protected String doIntercept(ActionInvocation invocation) throws Exception { System.out.println("拦截器起作用了!"); return invocation.invoke(); } }
action
package com.sh.action; import com.opensymphony.xwork2.ActionSupport; public class MethodAction extends ActionSupport{ public String execute(){ System.out.println("execute()执行了!"); return SUCCESS; } public String login(){ System.out.println("login()方法执行!"); return SUCCESS; } public String register(){ System.out.println("register()方法"); return SUCCESS; } }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 修改请求的后缀名为.do 修改后每个请求必须要有后缀了--> <constant name="struts.action.extension" value="do,action"/> <!-- 对于 采用 "!方法名"这种方法有用 ,采用通配符就不需要设置这个了 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- 默认的视图主题 <constant name="struts.ui.theme" value="simple"/>--> <package name="default" extends="struts-default"> <interceptors> <interceptor name="methodInterceptor" class="com.sh.interceptor.MethodInterceptor"/> </interceptors> <action name="method" class="com.sh.action.MethodAction"> <result>/success.jsp</result> <result name="login">/login.jsp</result> <interceptor-ref name="methodInterceptor"> <param name="excludeMethods">execute</param> <!--<param name="includeMethods">execute</param> --> </interceptor-ref> <interceptor-ref name="defaultStack"/> </action> </package> </struts>
--访问地址
http://localhost:8080/Struts2_inteceptorMethod/method!login.action
可以看到拦截器没有拦截
http://localhost:8080/Struts2_inteceptorMethod/method.action
可以看到拦截器拦截了
- Struts2_inteceptorMethod.zip (3.3 MB)
- 下载次数: 31
发表评论
-
解决getOutputStream() has already been called for this response
2014-07-30 19:16 3322java.lang.IllegalStateException ... -
Struts2 + ajaxFileUpload 异步上传文件
2013-12-04 19:33 1893ajaxFileUpload下载地址http://www.ph ... -
Struts2 Action 解析提交的XML
2013-10-16 12:30 1641package com.bjdata.bjsearch.p ... -
MyBatis+Spring+Struts2
2012-11-28 00:32 10628MyBatis3.1.1+Spring3.1.2+Struts ... -
Ibatis 整合spring + Struts2 加入OSCACHE
2012-11-14 00:10 4563说明: 使用 spring2.5 +ibatis2.3 ... -
Struts2中使用JfreeChart
2012-11-06 09:02 16471.jar commons-fileupload-1.2.2. ... -
Struts2整合SiteMesh
2012-11-05 10:33 76621.导入Struts2的jar 和 sitemesh.jar ... -
Struts2 编写安全策略(四十五)
2012-09-23 23:53 2300编写安全策略 包含(1 ... -
SSH2整合完整案例(四十三)
2012-09-14 09:34 20693注解配置:Struts2+Spring2.5+Hibernat ... -
Struts2 阻止表单重复 和 等待页面(四十四)
2012-09-23 21:13 2147表单重复提交现象 导 ... -
Struts2 文件上传,下载,删除(四十一)
2012-09-10 23:37 12339本文介绍了: 1.基于表单的文件上传 2.Struts 2 的 ... -
Struts2 文件上传,下载的类型(四十二)
2012-09-06 23:18 2006声明: 以下复制他人的!!! Struts2 文件上传 之 ... -
Struts2 常用标签使用(三十九)
2012-09-03 09:28 64311.append标签 使用append标签可以把多个集合对 ... -
Struts2 timer拦截器(三十二)
2012-08-31 02:17 20751.Strus2系统拦截器中,timer拦截器可以实现输出Ac ... -
Struts2 常用标签使用(三十九)
2012-09-03 00:50 51.append标签 使用append标签可以把多个集合对 ... -
Struts2 主题和模版设置(四十)
2012-09-03 20:24 4147----------------Struts2 主题----- ... -
Struts2 如何使用OGNL表达式(三十八)
2012-08-30 20:55 50871.OGNL是Object Graph Navitagtion ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-30 11:25 18470A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-29 14:08 9A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 iterator 标签遍历 Map,List,数组(三十六)
2012-08-26 18:30 205341.使用iterator 标签 遍历 数组,Map,List ...
相关推荐
在Struts2中,我们可以通过拦截器来检查用户是否具有访问某个Action或方法的权限。以下是一个简单的步骤: 1. 创建权限拦截器:首先,我们需要编写一个实现了`Interceptor`接口的类,例如`AuthorizationInterceptor...
2. **拦截器链**:在Struts2中,多个拦截器可以形成一个拦截器链,每个拦截器按照定义的顺序依次执行。如果所有拦截器都允许Action执行,那么Action的结果将被传递到下一个拦截器,直到整个链执行完毕。 ### 二、...
在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的基本概念。拦截器是在Action调用之前和之后执行的一段代码,可以用来做日志记录、权限检查...
### Struts 2 过滤器与拦截器的深入解析 #### 一、概述 在Struts 2框架中,过滤器(Filter)和拦截器(Interceptor)都是用于处理请求的关键组件,但它们之间存在本质的区别。正确理解这些差异有助于开发者更高效地...
Struts2 中拦截器与过滤器的区别及执行顺序 Struts2 中的拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,虽然它们都可以影响请求的处理过程,但它们的作用域、执行顺序和实现机制都有所不同。 拦截器...
当请求到达Action时,Struts2会调用这个链上的所有拦截器,然后才执行实际的动作方法。通过在拦截器中实现权限验证,我们可以在用户尝试访问受保护资源之前检查其登录状态。 接下来,我们创建一个自定义的登录拦截...
Struts2 拦截器是基于Java的Servlet Filter设计模式的一种实现,它提供了一种在Action执行前后插入额外逻辑的方式。拦截器是Struts2框架的核心组件之一,用于增强应用的功能,比如权限验证、日志记录、数据校验等。 ...
在Struts2中,拦截器工作在Action和结果(Result)之间,形成一个拦截器栈,每个拦截器按照配置的顺序依次执行。 Struts2的拦截器执行流程如下: 1. **初始化拦截器栈**:当Struts2框架启动时,会根据配置文件...
Struts2还提供了一些抽象类如`AbstractInterceptor`和`MethodFilterInterceptor`,简化了拦截器的实现过程,例如`MethodFilterInterceptor`允许开发者指定要过滤的Action方法。 4. **定义拦截器示例** 下面是一个...
Struts2 Trim拦截器过滤首尾空格 Struts2框架提供了拦截器机制,可以在Action执行前后执行某些操作,以满足特定的需求。TrimInterceptor就是一个这样的拦截器,它的主要功能是过滤请求数据的首尾空格。 ...
在这个场景中,我们将探讨如何使用Struts2拦截器来实现输入数据的过滤,特别是去除前后空格。 首先,我们需要理解拦截器的工作原理。在Struts2中,拦截器是基于责任链模式设计的,它们按照配置的顺序形成一个链条,...
Struts2拦截器是Struts2框架中的一个重要组件,它提供了一种机制允许开发者在Action调用前后插入自定义的行为,甚至能够阻止Action的执行。这种机制在很多企业级Java项目中有着广泛的应用,例如进行数据转换、校验、...
其中,拦截器(Interceptor)是Struts2中的一个关键特性,用于扩展框架的功能,实现诸如事务管理、权限控制、输入验证等功能。 #### Struts2的处理流程 1. **客户端请求**: 当客户端发起HTTP请求时,请求首先到达...
这个名为"Struts2编写的通用(拦截器,过滤器)Filter"的项目,主要目标是防止用户非法访问未授权的页面,确保只有登录用户才能访问特定的资源。 **拦截器(Interceptor)** 拦截器是Struts2框架的核心特性之一,它...
拦截器是Struts2框架的一个重要组成部分,它们是基于责任链模式实现的,可以看作是过滤器的扩展,提供了更多的控制和灵活性。在请求到达Action之前,一系列的拦截器会按照配置的顺序依次执行,之后在Action执行完毕...
- 在 Struts2 中,拦截器的工作方式类似于过滤器(Filter),但更面向业务逻辑。它们按照预定义的顺序组成一个拦截器栈,当请求到达Action时,会逐个执行这些拦截器。 2. **拦截器的配置** - 在 `struts.xml` ...
Struts2 工作原理及拦截器和过滤器 Struts2 框架的工作原理可以分为以下几个步骤: 1. 客户端发出一个指向 Servlet 容器的请求(Tomcat); 2. 这个请求会经过几个过滤器,最后会到达 FilterDispatcher 过滤器。...
在Struts2中,拦截器扮演着至关重要的角色,它们是框架的核心组件,能够增强应用的功能并实现诸如日志记录、权限检查、事务管理等通用任务。本文将深入探讨如何模拟Struts2的拦截器,并通过一个实际的Filter类来阐述...