- 浏览: 94676 次
- 性别:
- 来自: 北京
最新评论
-
zhaolianyang:
<div class="quote_title ...
JAVA 面试32问 -
zhaolianyang:
<div class="quote_title ...
JAVA 面试32问 -
leftcopychenhx:
&是在什么情况作为逻辑运算符呢
JAVA 面试32问 -
Mybeautiful:
第二十六,当一个线程进入一个对象的一个synchronized ...
JAVA 面试32问 -
zhaolianyang:
dayaolili 写道 那就换个有激情有动力的工作吧!换个适 ...
如何在工作中保持旺盛的状态???
Struts2的核心 拦截器续
说明:拦截器的主要作用就是拦截Action,执行顺序就是:拦截器->Action->拦截器->……。
功能:拦截器的基本的配置。
一、在之前的struts2项目src下创建一个包com.test.interceptor,用来存放拦截器,创建一个名称为MyInterceptor.java类,实现Interceptor接口:
二、在struts.xml配置文件中配置拦截器,在package节点先添加interceptors节点,并且要在对应的Action中进行引用:
三、再在struts.xml中的Intercepoters节点中添加一个param参数:
四、然后在拦截器MyInterceptor.java中添加一个对应的对象hello:
结果是world能在控制台正常的输出:init()
world
五、然后在Action中引用的时候,在在引用的属性中再增加一个param属性,并且把welcome赋给hello:
在控制台输出的是:init()
welcome,说明后来所赋得值welcome把前面的给替换掉了,所以说使用的时候给变量赋的值,会替换掉之前定义的时候所赋得值。
功能:定义拦截器栈。
六、还是在Intercepoters借点节点中添加一个拦截器栈,然后在对应的Action中引用这个拦截器栈,效果是一样的:
功能:改变默认继承的拦截器:
七、添加一个默认的拦截器栈,替换原有默认的拦截器,可以应用到所有的Action当中:
功能:在同一目录下再定义一个拦截器MyInterceptor2.java继承自AbstractInterceptor类:
八、在struts.xml中配置一下:
说明:拦截器执行的先后顺序与拦截器配置的先后顺序有关系,但是在结束的时候后配置的拦截器先结束。
功能:方法拦截器的实现。
九、在com.test.interceptor创建方法拦截器的类MyInterceptor3.java继承自MethodFilterInterceptor父类:
十、在struts.xml中进行方法拦截器的配置:
说明:includeMethods的属性具有优先级,但对某方法既拦截又不拦截的时候,这个方法是一定会执行的。
说明:拦截器的主要作用就是拦截Action,执行顺序就是:拦截器->Action->拦截器->……。
功能:拦截器的基本的配置。
一、在之前的struts2项目src下创建一个包com.test.interceptor,用来存放拦截器,创建一个名称为MyInterceptor.java类,实现Interceptor接口:
package com.test.interceptor; import java.awt.event.InvocationEvent; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; public class MyInterceptor implements Interceptor { public void destroy() { System.out.println("destroy()"); } public void init() { System.out.println("init()"); } public String intercept(ActionInvocation invocation) throws Exception { System.out.println("intercept"); String result = invocation.invoke(); return result; } }
二、在struts.xml配置文件中配置拦截器,在package节点先添加interceptors节点,并且要在对应的Action中进行引用:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="message"> </constant> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> </interceptor> </interceptors> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/result.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> <action name="zly" class="com.test.action.RegisterAction" method="test"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> </action> </package> </struts>
三、再在struts.xml中的Intercepoters节点中添加一个param参数:
<interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> </interceptors>
四、然后在拦截器MyInterceptor.java中添加一个对应的对象hello:
public void init() { System.out.println("init()"); System.out.println(hello); }
结果是world能在控制台正常的输出:init()
world
五、然后在Action中引用的时候,在在引用的属性中再增加一个param属性,并且把welcome赋给hello:
<action name="register" class="com.test.action.RegisterAction"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myInterceptor"> <param name="hello">welcome</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
在控制台输出的是:init()
welcome,说明后来所赋得值welcome把前面的给替换掉了,所以说使用的时候给变量赋的值,会替换掉之前定义的时候所赋得值。
功能:定义拦截器栈。
六、还是在Intercepoters借点节点中添加一个拦截器栈,然后在对应的Action中引用这个拦截器栈,效果是一样的:
<package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/result.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myStack"></interceptor-ref> </action> </package>
功能:改变默认继承的拦截器:
七、添加一个默认的拦截器栈,替换原有默认的拦截器,可以应用到所有的Action当中:
<package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack"></default-interceptor-ref> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/result.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> </action> </package>
功能:在同一目录下再定义一个拦截器MyInterceptor2.java继承自AbstractInterceptor类:
package com.test.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class MyInterceptor2 extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { System.out.println("Intercept2"); String result = invocation.invoke(); return result; } }
八、在struts.xml中配置一下:
<package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> <interceptor name="myInterceptor2" class="com.test.interceptor.MyInterceptor2"> </interceptor> <interceptor name="myInterceptor3" class="com.test.interceptor.MyInterceptor3"> </interceptor> <interceptor-stack name="myStack"> <!-- <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="myInterceptor2"></interceptor-ref> --> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack"></default-interceptor-ref> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/result.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction" method="test"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myInterceptor3"> <!-- <param name="includeMethods">test,execute</param> --> <param name="excludeMethods">test,execute</param> <param name="includeMethods">test</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package>
说明:拦截器执行的先后顺序与拦截器配置的先后顺序有关系,但是在结束的时候后配置的拦截器先结束。
功能:方法拦截器的实现。
九、在com.test.interceptor创建方法拦截器的类MyInterceptor3.java继承自MethodFilterInterceptor父类:
package com.test.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class MyInterceptor3 extends MethodFilterInterceptor { public void init(){ System.out.println("init3"); } @Override protected String doIntercept(ActionInvocation invocation) throws Exception { System.out.println("my interceptor3"); String result = invocation.invoke(); return result; } }
十、在struts.xml中进行方法拦截器的配置:
<package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> <interceptor name="myInterceptor2" class="com.test.interceptor.MyInterceptor2"> </interceptor> <interceptor name="myInterceptor3" class="com.test.interceptor.MyInterceptor3"> </interceptor> <interceptor-stack name="myStack"> <!-- <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="myInterceptor2"></interceptor-ref> --> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack"></default-interceptor-ref> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/result.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction" method="test"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myInterceptor3"> <!-- <param name="includeMethods">test,execute</param> --> <param name="excludeMethods">test,execute</param> <param name="includeMethods">test</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package>
说明:includeMethods的属性具有优先级,但对某方法既拦截又不拦截的时候,这个方法是一定会执行的。
- struts2.rar (3.2 MB)
- 下载次数: 5
发表评论
-
struts2学习笔记十九(第19讲.Struts2深入探索 续)
2013-01-31 01:26 782Struts2应用开发详解 第十九讲 Struts2 深入 ... -
struts2学习笔记十八(第18讲.Struts2深入探索)
2013-01-26 00:23 7851、在src目录下创建属性文件名struts.propert ... -
struts2学习笔记十七(第17讲.Struts2的国际化续)
2012-06-01 00:46 1233struts2的国际化: 1.页面的国际化,也就是jsp的国际 ... -
struts2学习笔记十六(第16讲.Struts2的国际化)
2012-05-24 23:35 811struts2学习笔记十六(第16讲.Struts2的国际化) ... -
struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)
2011-02-11 16:56 917Struts2的文件上传和下载续三 功能:用户可以自定义上传文 ... -
struts2学习笔记十四(第14讲.Struts2的文件上传和下载续二)
2011-01-21 16:00 1313Struts2的文件上传和下载续二 说明:使用struts2的 ... -
struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)
2011-01-19 18:04 942Struts2的文件上传和下载续 接上面未完成的功能。 一、首 ... -
struts2学习笔记十二(第12讲.Struts2的文件上传和下载)
2011-01-18 14:57 1268Struts2的文件上传和下载 ... -
struts2学习笔记十(第10讲.Struts2的核心 拦截器)
2011-01-13 17:47 923Struts2的核心 拦截器 一、修改RegisterAct ... -
struts2学习笔记九(第9讲.Struts2的校验框架 续)
2011-01-12 18:11 1077Struts2的校验框架 续 struts2同样支持客户端的 ... -
struts2学习笔记八(第8讲.Struts2的校验框架)
2011-01-12 15:44 921第8讲.Struts2的校验框架 之前的验证方式是stru ... -
struts2学习笔记七(第7讲.Struts2的输入校验续二)
2011-01-11 18:07 1037Struts2的输入校验续二 主要介绍addActionErr ... -
struts2学习笔记六(第6讲.Struts2的输入校验续一)
2011-01-10 14:32 1226Struts2的输入校验续一 说明: 遇到类型转换错误的时候 ... -
struts2学习笔记五(第5讲.Struts2的输入校验)
2011-01-07 18:36 1026Struts2的输入校验 数据校验是建立在类型转换的基础之上的 ... -
struts2学习笔记四(第4讲.Struts2的类型转换续)
2011-01-06 23:25 975struts2中的局部类型转换 新的需求:用户需要同时增加三 ... -
struts2学习笔记三(第3讲.Struts2的类型转换)
2011-01-05 17:31 1060struts2中的局部类型转换 其中一个主要的就是使用逗号将 ... -
struts2学习笔记二(第2讲.Struts2入门与配置续)
2011-01-05 16:36 935接上面未完成的功能:判断输入的用户名和密码是否正确。 一、创建 ... -
struts2学习笔记一(第1讲.Struts2入门与配置)
2011-01-05 00:12 1359struts2学习笔记一(第1讲.Struts2入门与配置) ...
相关推荐
NULL 博文链接:https://zhaolianyang.iteye.com/blog/870600
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
struts2学习笔记,拦截器,action,所需jar包,从零开始
Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架发展而来 Struts2框架=Struts2+XWork Strust2 核心功能 允许POJO(Plain Old Java Objects,简单javabean对象,没有继承,...
01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 ...09 自定义拦截器 38 10 类型转换 38 Struts2总结 39
struts2快速入门学习笔记,包含执行流程、验证、拦截器、国际化等的使用
struts2.2学习笔记总结,action,拦截器,过滤器,国际化,struts.xml解析等的总结。
当前struts2的filter过滤到一个.action结尾的请求的时候,会把这个请求交给struts2内部的拦截器(interceptor) 2)拦截器起到什么作用 可以帮我们丰富action的功能,比自动类型转换(页面传一个String类型的id,接收的...
基于 Struts2.1.8 包括Struts2的基本应用、文件上传、拦截器、输入校验、国际化、OGNL表达式、Struts2标签等内容。
适合新手借鉴的struts学习笔记,更适合一入门的老手借鉴,个人学习心得
学习struts2的笔记与源码:输入验证、国际化、拦截器等
Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、...Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用
拦截器 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/710102
{12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...
struts2框架教学项目,针对每个知识点都有一个对应的实例,内嵌学习笔记。想学习的同学绝对适合,本人亲自教学实例。
8、拦截器 2.Spring入门 2.1.Springmvc是什么 3.3.jdbc编程步骤: 1、加载数据库驱动 2、创建并获取数据库链接 3、创建jdbc statement对象 4、设置sql语句 5、设置sql语句中的参数(使用preparedStatement) 6、通过...
除此之外,第11、第14章还提供了两个完整的实例来讲解Struts2开发新特性和开发SSH的详细步骤.通过对这两章的学习,读者可以对SSH开发模式有更透彻的理解和认识。《跟我学Java Web》光盘中提供了丰富的内容,包括全书...