- 浏览: 1576112 次
- 来自: 上海
文章分类
- 全部博客 (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 3281java.lang.IllegalStateException ... -
Struts2 + ajaxFileUpload 异步上传文件
2013-12-04 19:33 1862ajaxFileUpload下载地址http://www.ph ... -
Struts2 Action 解析提交的XML
2013-10-16 12:30 1606package com.bjdata.bjsearch.p ... -
MyBatis+Spring+Struts2
2012-11-28 00:32 10562MyBatis3.1.1+Spring3.1.2+Struts ... -
Ibatis 整合spring + Struts2 加入OSCACHE
2012-11-14 00:10 4516说明: 使用 spring2.5 +ibatis2.3 ... -
Struts2中使用JfreeChart
2012-11-06 09:02 15981.jar commons-fileupload-1.2.2. ... -
Struts2整合SiteMesh
2012-11-05 10:33 75911.导入Struts2的jar 和 sitemesh.jar ... -
Struts2 编写安全策略(四十五)
2012-09-23 23:53 2259编写安全策略 包含(1 ... -
SSH2整合完整案例(四十三)
2012-09-14 09:34 20596注解配置:Struts2+Spring2.5+Hibernat ... -
Struts2 阻止表单重复 和 等待页面(四十四)
2012-09-23 21:13 2112表单重复提交现象 导 ... -
Struts2 文件上传,下载,删除(四十一)
2012-09-10 23:37 12287本文介绍了: 1.基于表单的文件上传 2.Struts 2 的 ... -
Struts2 文件上传,下载的类型(四十二)
2012-09-06 23:18 1958声明: 以下复制他人的!!! Struts2 文件上传 之 ... -
Struts2 常用标签使用(三十九)
2012-09-03 09:28 63881.append标签 使用append标签可以把多个集合对 ... -
Struts2 timer拦截器(三十二)
2012-08-31 02:17 20401.Strus2系统拦截器中,timer拦截器可以实现输出Ac ... -
Struts2 常用标签使用(三十九)
2012-09-03 00:50 51.append标签 使用append标签可以把多个集合对 ... -
Struts2 主题和模版设置(四十)
2012-09-03 20:24 4108----------------Struts2 主题----- ... -
Struts2 如何使用OGNL表达式(三十八)
2012-08-30 20:55 50371.OGNL是Object Graph Navitagtion ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-30 11:25 18414A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-29 14:08 9A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 iterator 标签遍历 Map,List,数组(三十六)
2012-08-26 18:30 204811.使用iterator 标签 遍历 数组,Map,List ...
相关推荐
Struts2拦截器实现权限控制demo,我感觉对初学者还是有一定帮助的
Struts 2 过滤器和拦截器的区别
Struts2 中拦截器与过滤器的区别及执行顺序 Struts2 中的拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,虽然它们都可以影响请求的处理过程,但它们的作用域、执行顺序和实现机制都有所不同。 拦截器...
Struts2 Trim拦截器过滤首尾空格 Struts2框架提供了拦截器机制,可以在Action执行前后执行某些操作,以满足特定的需求。TrimInterceptor就是一个这样的拦截器,它的主要功能是过滤请求数据的首尾空格。 ...
用struts2拦截器实现输入数据过滤前后空格
Struts2 工作原理及拦截器和过滤器 Struts2 框架的工作原理可以分为以下几个步骤: 1. 客户端发出一个指向 Servlet 容器的请求(Tomcat); 2. 这个请求会经过几个过滤器,最后会到达 FilterDispatcher 过滤器。...
Struts2拦截器的实现原理(csdn)————程序
Struts2的处理流程: • 客户端产生一个HttpServletRequest的请求,该请求被提交到一系列的标准过滤器(Filter)组建链中(如ActionContextCleanUp:它主要是清理当前线程的ActionContext、Dispatcher,...
通过web配置拦截器进行struts2漏洞拦截源码及配置
Struts2编写的通用的禁止用户非法访问非登录页面以外的其他页面的拦截器,过滤器,程序附带运行说明和可执行文件,希望给您的工作或学习带来帮助
拦截器可以说相当于是个过滤器:就是把你不想要的或不想显示的内容给过滤掉。拦截器可以抽象出一部分代码可以用来完善原来的Action。同时可以减轻代码冗余,提高重用率。比如在登入一个页面时,如果要求用户密码、权限...
(1)必须实现Intercepter...(3)拦截器组件可以继承MethodFilterIntercepter类(继承自AbstractIntercepter),增加了方法过滤功能(上面两种方式是拦截所有方法,这个方法可以拦截指定方法)。 这是一个拦截器的例子。
主要介绍了struts2过滤器和拦截器的区别,简单分析了struts2框架中过滤器和拦截器的概念与相关使用区别,需要的朋友可以参考下
struts2中过滤器的案例,里包含web.xml,struts.xml,以及相关的java文件和jsp文件等,里的程序都可成功执行
3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调一次。 4、拦截器可以利用依赖注入,因此在spring框架程序中,优先拦截器 5、拦截器是包裹在过滤器中使用的。 复习 converter 转换器 ...
结合struts2编写的通用过滤器filter,内附有word文档操作详解,配置十分方便,曾经做ssh项目的时候用于拦截浏览器地址栏非法登录,用在非法登录拦截这一块非常适合,经过测试没有问题。
主要介绍了Struts拦截器实现拦截未登陆用户实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
学习常用知识(java,sql,oracle,ejb,ssh,struts,xml,监听器,拦截器,过滤器等等)这些都是本人的学习心得非常适用,希望能该初学者带来更大的帮助!!!
NULL 博文链接:https://1601844782.iteye.com/blog/2275685