- 浏览: 715037 次
- 性别:
- 来自: 上海
最新评论
-
TheUniqueGirl:
Tomcat系统架构与设计模式:http://www.doci ...
Tomcat -
aykjy:
...
UML常见工具之NetBeans(downmoon) -
不老肖邦:
谢谢提供的简单示例
JAVA toString()
Struts2框架的大部分功能都是通过拦截器来完成的。默认情况下所以的package都会继承默认的struts-default包,这样就可以使用Struts的大量默认拦截器。
<package name="userModel" namespace="/" extends="struts-default">
<!-- struts2拦截器 拦截该包的所有action-->
<interceptors>
<interceptor name="myLogin" class="oms.odc.eq.intercept.LoginIntercept"></interceptor>
<interceptor-stack name="myInterceptor">
<interceptor-ref name="myLogin"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptor"/>
<!-- struts2拦截器 -->
<!-- 全局跳转到登陆页面 -->
<global-results>
<result name="loginFail">/login.jsp</result>
</global-results>
<!-- 全局跳转到登陆页面 -->
</package>
public class LoginIntercept extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Object username = invocation.getInvocationContext().getSession().get(
"username");
Object password = invocation.getInvocationContext().getSession().get(
"password");
System.out.println(username+"intercept"+password);
if (username == null || password == null) {
return "loginFail";//失败调回login.jsp页面
} else {
String result = invocation.invoke();//通过
System.out.println(result);
return result;
}
}
}
web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
///////////////////////////
1、自定义全局拦截器
在Struts.xml里增加 <interceptor name="拦截器别名" class="拦截器实现类" >
为其他包引用的方便可以把多个拦截器放在一起,组成拦截器栈:
<interceptor-stack name="拦截器栈别名">
<interceptor name="拦截器别名1" class="拦截器实现类" >
<interceptor name="拦截器别名2" class="拦截器实现类" >
</interceptor-stack>
2、在action中使用拦截器
<action name="" class="" extends="struts-default">
<interceptor-ref="拦截器栈别名">
</action>
3、配置默认的拦截器(每个包只能定义一个默认拦截器)
当配置一个包后,可以为其指定特定的拦截器。这样如果该包中的ACTION没有配置拦截器,那么默认的拦截器将起作用
<default-interceptor-ref name="拦截器栈别名">
4、实现拦截器需继承AbstractInterceptor类
5、在默认情况下,如何某个Action定义了拦截器,这个拦截器会拦截Action的所以方法,如果不想拦截所以方法,可以使用Struts2的方法过滤特性。
<action name="" class="" extends="struts-default">
<interceptor-ref="拦截器栈别名">
<param name="excludeMethods">拦截器别名1,拦截器别名2</param> < ————屏蔽的拦截
<param name="includeMethods">拦截器别名2</param> <————开启拦截
</action>
6、Struts2拦截器的执行顺序
并不是先配置的先拦截,在execute方法执行前的动作按顺序拦截,在execute方法执行之后的动作逆序执行,也就是说配置在后面的先执行。
<package name="userModel" namespace="/" extends="struts-default">
<!-- struts2拦截器 拦截该包的所有action-->
<interceptors>
<interceptor name="myLogin" class="oms.odc.eq.intercept.LoginIntercept"></interceptor>
<interceptor-stack name="myInterceptor">
<interceptor-ref name="myLogin"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptor"/>
<!-- struts2拦截器 -->
<!-- 全局跳转到登陆页面 -->
<global-results>
<result name="loginFail">/login.jsp</result>
</global-results>
<!-- 全局跳转到登陆页面 -->
</package>
public class LoginIntercept extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Object username = invocation.getInvocationContext().getSession().get(
"username");
Object password = invocation.getInvocationContext().getSession().get(
"password");
System.out.println(username+"intercept"+password);
if (username == null || password == null) {
return "loginFail";//失败调回login.jsp页面
} else {
String result = invocation.invoke();//通过
System.out.println(result);
return result;
}
}
}
web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
///////////////////////////
1、自定义全局拦截器
在Struts.xml里增加 <interceptor name="拦截器别名" class="拦截器实现类" >
为其他包引用的方便可以把多个拦截器放在一起,组成拦截器栈:
<interceptor-stack name="拦截器栈别名">
<interceptor name="拦截器别名1" class="拦截器实现类" >
<interceptor name="拦截器别名2" class="拦截器实现类" >
</interceptor-stack>
2、在action中使用拦截器
<action name="" class="" extends="struts-default">
<interceptor-ref="拦截器栈别名">
</action>
3、配置默认的拦截器(每个包只能定义一个默认拦截器)
当配置一个包后,可以为其指定特定的拦截器。这样如果该包中的ACTION没有配置拦截器,那么默认的拦截器将起作用
<default-interceptor-ref name="拦截器栈别名">
4、实现拦截器需继承AbstractInterceptor类
5、在默认情况下,如何某个Action定义了拦截器,这个拦截器会拦截Action的所以方法,如果不想拦截所以方法,可以使用Struts2的方法过滤特性。
<action name="" class="" extends="struts-default">
<interceptor-ref="拦截器栈别名">
<param name="excludeMethods">拦截器别名1,拦截器别名2</param> < ————屏蔽的拦截
<param name="includeMethods">拦截器别名2</param> <————开启拦截
</action>
6、Struts2拦截器的执行顺序
并不是先配置的先拦截,在execute方法执行前的动作按顺序拦截,在execute方法执行之后的动作逆序执行,也就是说配置在后面的先执行。
发表评论
-
Myeclipse的tyry catch 怎么让它自动生成
2011-03-21 19:58 1641方法1:选择代码段,右键单击,选择Surround Wit ... -
深入Struts2
2011-02-24 21:24 8091.深入Struts2的配置文件 本部分主要介绍struts ... -
Struts教程
2011-02-24 22:11 995概述 本文主要讲解什么是Struts Frame ... -
Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
2011-02-24 22:32 1670常用第一种跟第二种 1.Action属性传参数: ... -
struts2采用域模型方式接收参数
2011-02-24 22:38 1012struts.xml: <struts&g ... -
Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
2011-02-25 14:10 1268准备:建表 用MySQL在名为STMS数据库 ... -
在MyEclipse下如何添加hibernate支持(2)
2011-02-25 14:26 1167在上一篇文章里我们已经成功的为项目添加了hib ... -
在MyEclipse下如何添加hibernate支持(1)
2011-02-25 14:26 1666在网络资源中有很多S2HS整合的文档和教程,但是真正适 ... -
Struts2+Spring+Hibernate搭建全解!
2011-02-26 20:46 765Struts2+Spring+Hibernate是J2 ... -
struts2拦截器详解实例
2011-03-21 16:11 1073struts.xml <?xml version=&qu ... -
Struts2拦截器配置
2011-03-21 11:25 1398拦截器(interceptor)是Struts2最强大的特性之 ... -
Struts2使用之拦截器实例
2011-03-21 11:16 948实例一:防止表单重复提交 防止重复提交:有两种方法:一是使用 ... -
struts开发小结
2011-03-20 21:27 889<%@ page language="java ... -
数据校验DataValiation
2011-03-20 14:46 909struts.xml <?xml version=&qu ... -
JAVA Calendar详解
2011-03-20 14:00 816(在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最 ... -
struts tags小结
2011-03-20 10:47 1602struts.xml <?xml version=&q ... -
ongl表达式用法
2011-03-19 21:39 1187struts.xml <?xml version=&qu ... -
action向其他页面传参数
2011-03-19 16:24 1413struts.xml <?xml version=&qu ... -
动态结果集DynamicResult
2011-03-19 16:04 919struts.xml <?xml version=&qu ... -
全局结果集 global-results | extends
2011-03-19 15:53 908struts.xml <?xml version=&qu ...
相关推荐
3. 在Struts2的配置文件(struts.xml)中声明并配置拦截器,指定拦截器的执行顺序和作用范围。 **四、拦截器的配置** Struts2的拦截器可以通过XML或注解两种方式进行配置: - XML配置:在`struts.xml`文件中,...
3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...
### Struts2拦截器的使用方法 #### 一、Struts2拦截器概述 ...通过以上介绍,我们可以了解到Struts2拦截器的基本使用方法及配置方式,这对于理解Struts2框架的工作机制以及优化应用架构具有重要意义。
2. **配置拦截器**:在`struts.xml`配置文件中定义拦截器,指定其执行顺序和关联的Action。 3. **注册拦截器**:将自定义拦截器加入到`struts-default`或`struts-plugin`拦截器栈中,或者创建新的拦截器栈并应用到...
### Struts2拦截器详解 #### 一、Struts2拦截器概述 Struts2框架作为Java Web开发中的一种流行框架,其核心组件之一便是**拦截器**。拦截器不仅在Struts2中扮演着重要角色,更是整个框架灵活性与扩展性的基石。...
3. 在调用Action之前,Struts2会按照配置的顺序依次执行拦截器链。 4. 每个拦截器可以决定是否允许请求继续传递到下一个拦截器或直接终止。例如,一个登录拦截器可能会检查用户是否已登录,如果未登录则跳转到登录...
在Struts2的核心配置文件`struts.xml`中,我们可以定义拦截器链,指定哪些拦截器应用于哪些Action。 权限控制是web应用中不可或缺的一部分,它可以防止未经授权的用户访问特定资源。在Struts2中,我们可以通过拦截...
在提供的文件"10Struts2Validation"和"11Struts2InterceptorConfig"中,可能包含了Struts2拦截器配置和验证的示例代码。这些代码可以帮助你理解如何设置拦截器,如何配置验证规则,以及如何在实际应用中实现登录验证...
拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的...
当一个请求被发送到Struts2框架时,拦截器会按照配置的顺序依次对请求进行处理。每个拦截器都有`intercept()`方法,这个方法会在动作执行前和执行后被调用,允许开发者插入预处理和后处理逻辑。 **2. 拦截器的工作...
当请求到达控制器时,Struts2会依次调用这个栈中的拦截器,每个拦截器都有机会处理请求,然后决定是否将请求传递给下一个拦截器或直接返回响应。 创建一个简单的Struts2拦截器,你需要遵循以下步骤: 1. 创建拦截...
2. **拦截**:当一个请求到达Action时,Struts2会根据配置的拦截器栈顺序,先调用每个拦截器的`intercept()`方法,然后才执行Action的业务逻辑。 3. **后处理**:Action执行完毕后,Struts2会逆序遍历拦截器栈,调用...
2. **拦截器配置**: - 在Struts2配置文件中定义拦截器,比如创建一个名为`myInterceptor`的拦截器,指定其类为`com.zzz.struts2.interceptor.MyInterceptor`,并设置系统初始化参数,如`张钊钊</param>`。 - 创建...
我们需要在struts.xml配置文件中声明这个拦截器,并将其加入到默认的拦截器栈或者特定Action的拦截器配置中。例如: ```xml <struts> <package name="default" namespace="/" extends="struts-default"> <!-- ...
1. **Struts2配置**:理解`struts.xml`文件的配置,包括Action的配置、拦截器栈的定义等。 2. **拦截器的编写和使用**:创建自定义拦截器类,实现`Interceptor`接口,以及如何在配置文件中引用拦截器。 3. **Action...
3. 依据配置的Interceptor Stack(拦截器栈),Struts2会按顺序调用每个拦截器的`intercept`方法。 4. 在`intercept`方法中,通常会先调用`ActionInvocation`的`invoke`方法,这将执行下一个拦截器或者直接执行...
在Struts2配置中,我们需要将这个拦截器添加到拦截器栈中,通常是在`struts.xml`文件中。这样,每次请求到达Action之前,都会先经过这个拦截器: ```xml <struts> ...
3. 配置拦截器栈:Struts2使用拦截器栈的概念,即将多个拦截器组织成一个栈,按照栈的顺序依次执行。在`struts.xml`中,可以创建一个或多个拦截器栈,并将权限拦截器包含在内。 4. 应用拦截器:在Action配置中,...
然而,Struts2从2.1版本开始引入了拦截器注解,使得无需在配置文件中显式声明拦截器,就可以直接在Action类或方法上使用注解来应用拦截器。这种方式更简洁,减少了配置工作量,提高了代码可读性。 以下是几种常见的...
当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。拦截器可以进行如权限验证、日志记录、性能监控等多种操作。 2. **创建自定义拦截器** 创建自定义拦截...