- 浏览: 158572 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhousheng193:
非常感谢LZ
在JSP页面及servlet的doGet()方法中处理汉字乱码的问题 -
jie523314:
学习下。。。
读取XML文件
一、理解Struts2拦截器
1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。
二、实现Struts2拦截器原理
Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器
三、定义Struts2拦截器。
Struts2规定用户自定义拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口。该接口声明了3个方法,
其中,init和destroy方法会在程序开始和结束时各执行一遍,不管使用了该拦截器与否,只要在struts.xml中声明了该Struts2拦截器就会被执行。
intercept方法就是拦截的主体了,每次拦截器生效时都会执行其中的逻辑。
不过一般在自定义拦截器的时候,可以使用struts中提供的AbstractInterceptor抽象类来简化这一步骤。
都是模板方法实现的。
其中AbstractInterceptor提供了init()和destroy()的空实现,使用时只需要覆盖intercept()
方法;
而MethodFilterInterceptor则提供了includeMethods和excludeMethods两个属性,用来过滤执行该过滤器的action的方法。可以通过param来加入或者排除需要过滤的方法。
四、配置Struts2拦截器
Struts2拦截器需要在struts.xml中声明,如下struts.xml配置文件
<interceptor-ref name="MyInterceptorStack"></interceptor-ref>的name可以是一个单独的拦截器,不过一般我们都要对某一类处理做多次同样的拦截是可以一个一个的写,不过,为了方便,我们也可以定义自己的拦截器栈,在栈内可以interceptor-ref 来指向它的拦截器实体,当某个action请求需要这些的拦截器时,我们就可以直接使用我们自己定义的拦截器栈,
而栈内可以放置1到多个的拦截器对其过滤。
1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。
二、实现Struts2拦截器原理
Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器
三、定义Struts2拦截器。
Struts2规定用户自定义拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口。该接口声明了3个方法,
void init(); void destroy(); String intercept(ActionInvocation invocation) throws Exception;
其中,init和destroy方法会在程序开始和结束时各执行一遍,不管使用了该拦截器与否,只要在struts.xml中声明了该Struts2拦截器就会被执行。
intercept方法就是拦截的主体了,每次拦截器生效时都会执行其中的逻辑。
不过一般在自定义拦截器的时候,可以使用struts中提供的AbstractInterceptor抽象类来简化这一步骤。
public abstract class AbstractInterceptor implements Interceptor; public abstract class MethodFilterInterceptor extends AbstractInterceptor;
都是模板方法实现的。
其中AbstractInterceptor提供了init()和destroy()的空实现,使用时只需要覆盖intercept()
@SuppressWarnings("serial") public class MyFirstInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation arg0) throws Exception { String view = ""; System.out.println("站住,大姐,大大劫!!"); //getProxy()方法,可以获取action的配置信息,和调用的方法 System.out.println(arg0.getProxy().getAction()); view = arg0.invoke(); System.out.println("欢迎回来"); return view; }
方法;
而MethodFilterInterceptor则提供了includeMethods和excludeMethods两个属性,用来过滤执行该过滤器的action的方法。可以通过param来加入或者排除需要过滤的方法。
四、配置Struts2拦截器
Struts2拦截器需要在struts.xml中声明,如下struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <package name="myTest" extends="struts-default" namespace="/first"> <interceptors> <interceptor name="firstInterceptor" class="org.tarena.struts.interceptor.MyFirstInterceptor"/> <interceptor-stack name="MyInterceptorStack"> <interceptor-ref name="firstInterceptor"/> </interceptor-stack> </interceptors> <action name="login" class="org.tarena.struts.test01.LoginAction"> <interceptor-ref name="MyInterceptorStack"></interceptor-ref> <result name="success" type="dispatcher">/ok.jsp</result> <result name="input">/index.jsp</result> </action> </package> </struts>
<interceptor-ref name="MyInterceptorStack"></interceptor-ref>的name可以是一个单独的拦截器,不过一般我们都要对某一类处理做多次同样的拦截是可以一个一个的写,不过,为了方便,我们也可以定义自己的拦截器栈,在栈内可以interceptor-ref 来指向它的拦截器实体,当某个action请求需要这些的拦截器时,我们就可以直接使用我们自己定义的拦截器栈,
而栈内可以放置1到多个的拦截器对其过滤。
发表评论
文章已被作者锁定,不允许评论。
-
struts2的select标签的标签显示问题
2010-09-20 20:00 819引用使用select的标签的时候第一个显示标签怎么都弄不出来纠 ... -
解决long类型转换成date类型的转换通过struts2在页面显示
2010-09-20 17:05 1209由于数据库里面的时间类型统一的为long类型,但是到页面取值的 ... -
何时使用转发,何时使用重定向
2010-09-19 12:45 1611转发:两个jsp共享一个request请求 重定向:放弃当前r ... -
struts标签的使用总结
2010-09-17 21:01 649总结了好久才做到了 自己想要的标签使用方法,具体看代码 ... -
jsp页面导入外部文件的3种方法
2010-09-15 13:27 1735第一种: jsp 的include指令引入外部文件 <% ... -
WARN - Got result of null when trying to get Boolean.
2010-09-12 18:50 1687今天,真倒霉给注册页面添加框架验证结果却是 WARN - G ... -
Struts2内建拦截器的简要介绍
2010-09-07 19:14 888Struts2内建拦截器的简要介绍 ali ... -
struts2自定类型转换器
2010-09-04 14:28 693类型转换 a.自定类型转换器 ... -
taglib引入struts标签的使用
2010-09-03 21:01 1377<%@ page language="java ... -
struts2中ognl表达式的理解和用法
2010-09-03 19:40 1293ognl表达式的使用如下面的例子: 总的来说,就是 actio ... -
熟悉Struts2的配置文件
2010-09-03 19:28 588熟悉Struts2的配置文件 a.内置配置文件 s ... -
struts2国际化配置(+页面下拉修改)
2010-09-03 19:01 1299可以用struts.xml或struts.properties ... -
深入Struts2的配置文件
2010-09-03 13:53 1155struts.xml文件中每个元素的含义. 1) Bean ... -
struts2的基本流程(转)
2010-09-03 10:21 858大致上 ,Struts2 框架由三个部分组成 : ... -
The Struts dispatcher cannot be found
2010-09-02 09:42 954The Struts dispatcher cannot be ... -
struts2.0笔记(1)
2010-08-30 19:51 636了解Struts2发展历程及其特点 a.支持 ... -
两种方式修改struts2的访问路径以.do为结尾的方式
2010-08-30 19:24 1367struts2的核心包中找到:org.apache.strut ... -
帮你彻底解决eclipse(myeclipse)中写struts.xml配置文件时,没有提示功能的烦恼
2010-08-30 18:30 2210其实,在自己写struts.xml ... -
struts2基本配置(基本一个登陆)
2010-08-30 17:55 894一、导struts2的包几个包 1.struts2-c ...
相关推荐
Struts2拦截器原理分析实例 博文链接:https://zmx.iteye.com/blog/457432
浅谈Struts2拦截器的原理与实现.docx
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
Struts2拦截器实现权限控制demo,我感觉对初学者还是有一定帮助的
在action执行之前先进行拦截器的拦截处理,然后再执行action的execute方法,返回给拦截器,再对应相应result
仿struts 2 拦截器原理
Struts2拦截器.ppt Struts2拦截器.ppt Struts2拦截器.ppt
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序
关于struts2 拦截器的详细的解释及其在开发中对struts2的拦截器的应用和拦截器在框架中的作用.
struts2拦截器的使用说明文档,配置说明文档。可以看一下
Struts2拦截器的实现原理(csdn)————程序
使用struts的拦截器拦截一些敏感性的词或一些非法或不文秘的言论
其中,init和destroy方法会在程序开始和结束时各执行一遍,不管使用了该拦截器与否,只要在struts.xml中声明了该Struts2拦截器就会被执行。 intercept方法就是拦截的主体了,每次拦截器生效时都会执行其中的逻辑。
基于struts2的拦截器测试,实现了页面的跳转,中间过程的拦截
运用struts2的拦截器技术实现的页面检测拦截非法用户饿坏指定用户注册。。。
NULL 博文链接:https://cmexico.iteye.com/blog/621208
使用Struts2实现用户权限拦截、重点是掌握拦截器的使用和配置方法,通过案例的学习,就能掌握struts中拦截器的使用方法,让我们能快速上手
struts2拦截器应用小例子,与大家共分享