使用struts2拦截器、或者自定义拦截器是要特别注意:在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(使用struts2自带的timer拦截器):
<action name="loginAction" class="cn.wjq.study.login.action.LoginAction" method="login"> <result name="toWelcome">/login/welcome.jsp</result> <interceptor-ref name="timer"></interceptor-ref> <!--必须引用 --> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
也可以改为对全局Action设置自己需要的拦截器,如下:
在struts.xml里面定义全局的配置设置
<!-- 定义了一个新的拦截器栈,在这个拦截器栈中,先引用timer拦截器,再引用defaultStack拦截器栈 --> <interceptors> <interceptor-stack name="pubStack"> <!--timer拦截器 用来记录action的运行时间(在控制台上会打印出)--> <interceptor-ref name="timer"/> <!-- struts2默认栈(在引用其他栈或拦截器时必须引用defaultStack栈) --> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <!-- 定义默认的拦截器引用为这个新定义的拦截器栈 pubStack--> <default-interceptor-ref name="pubStack"/>
相关推荐
在Struts2框架中,每个请求都会经过一系列预定义或自定义的拦截器链。这些拦截器按照它们在配置文件中声明的顺序执行,每个拦截器都可以决定是否允许请求继续传递到下一个拦截器或直接返回结果。如果所有拦截器都...
在Struts2中,每个Action执行前都会经过一系列预定义或自定义的拦截器。这些拦截器按照配置的顺序逐个执行,每个拦截器执行完毕后,会将控制权传递给下一个拦截器,直到最后一个拦截器执行完后再调用Action的`...
1. **拦截器链**:Struts2的拦截器工作在一个预定义的拦截器链上,这个链由多个拦截器按照特定顺序组成。每个拦截器都可以执行特定的任务,如日志记录、参数校验、事务管理等。 2. **调用流程**:当一个Action请求被...
在Struts2框架中,每个请求都会经过一系列预定义或自定义的拦截器,这些拦截器按照栈的形式执行。如果所有的拦截器都允许请求继续,那么Action会被调用;反之,如果某个拦截器阻止了请求,Action就不会被执行。拦截...
- **局部配置**:在Action配置中,可以通过`<interceptor-ref>`标签引入拦截器,例如引用Struts2的`defaultStack`,这是一个预定义的拦截器堆栈,包含许多常用拦截器。如果需要自定义拦截器,可以使用`...
4. `timer`拦截器是Struts2的预定义拦截器之一,它用于记录Action执行所花费的时间,这对于性能分析和优化非常有用。 5. Struts2的预定义拦截器有很多,包括但不限于以下这些: - a) `params`拦截器:处理请求参数...
在"struts2-interceptor"这个压缩包中,我们可以预期找到一个关于如何使用Struts2拦截器实现简单登录控制的示例。 拦截器在Struts2中扮演着类似过滤器的角色,但更加强大和灵活。它们通过定义一系列预定义的或...
首先,Struts2的拦截器机制是基于责任链模式的,它可以看作是在Action调用前后执行的一系列预定义或自定义操作。这些操作可以包括日志记录、权限检查、数据校验等。在这个登录应用中,我们可能会有一个登录拦截器,...
Struts2的架构基于拦截器栈,每个请求都会经过一系列预定义或自定义的拦截器,这些拦截器按顺序执行,形成一个处理链。在请求到达Action之前,拦截器可以进行预处理,Action执行后,拦截器还可以进行后处理。这种...
在`struts-default.xml`中,预定义了一些拦截器,比如`params`用于参数绑定,`validation`用于验证,`exception`用于处理异常等。这些拦截器可以单独使用,也可以组合成拦截器栈(interceptor-stack),通过`...
Struts2的核心就是拦截器,它们是基于责任链模式实现的,可以进行一系列预定义或自定义的处理,如验证、异常处理等。这使得Struts2具备了更强大的业务逻辑处理能力,而Struts1则没有这个概念。 **3. 表达式语言:**...
Struts2预定义了一系列拦截器,如params、i18n、debugging、validation等,开发者可以自定义拦截器来扩展功能。 这个"struts2-jar"文件可能包含以下核心组件和整合所需的jar包: - `struts2-core.jar`:Struts2...
Struts2预定义了一些结果类型,如“dispatcher”(用于转发到JSP页面),开发者也可以自定义结果类型以满足特定需求。 7. **动态方法调用(Dynamic Method Invocation,DMI)**: Struts2支持动态方法调用,这意味...
拦截器是Struts2的一大特色,它可以定义一系列预定义的或者自定义的行为,这些行为会在Action执行前或后执行。例如,PrepareInterceptor用于初始化Action的属性,ValidationInterceptor负责验证表单数据,...
默认提供了如Prepare、Validation、Exception等预定义拦截器。 5. **结果类型(Result)**:Action执行后的结果可以重定向到一个新的JSP页面、Action或者转发到其他地方。Struts2支持多种结果类型,如dispatcher...
6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,它使得在视图层与模型层之间传递数据变得简单直观。 7. **集成测试**:Struts2提供了一套测试工具,使得对Action的单元测试变得...
Struts2预定义了许多拦截器,如`params`用于参数预处理,`exception`处理异常等。你可以根据需求自定义拦截器,并在struts.xml中配置。 八、总结 本实例是一个基础的Struts2应用,展示了如何创建一个简单的Action,...
1. 预定义拦截器:如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 2. 自定义拦截器:开发者可以根据需求创建自己的拦截器,实现特定功能,如日志记录、权限验证等。 六、...