`
peigang
  • 浏览: 171483 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2应用开发详解--15、自定义拦截器

    博客分类:
  • JAVA
阅读更多

    拦截器在实际开发中经常用到,典型的应用如对全局环境的权限验证。拦截器实现可以体现非常好的封装性,代码也容易维护。

拦截器实现需要如下步骤。

一、实现一个拦截器类

Struts2的拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口和对于方法,如下所示:

1、拦截器实现类

package filter;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

public class TestInterceptor implements Interceptor {

 public void destroy() {
    // TODO Auto-generated method stub

 }

 public void init() {
    // TODO Auto-generated method stub

 }

 public String intercept(ActionInvocation invocation) throws Exception {
  // TODO Auto-generated method stub

    return invocation.invoke();
 }

}

2、 拦截器栈设置

a、创建拦截器堆栈

     <interceptors>
      <interceptor name="testInter" class="filter.TestInterceptor"></interceptor>
      <interceptor-stack name="testStack">  //新建堆栈名
       <interceptor-ref name="defaultStack"></interceptor-ref> //设置拦截器堆栈,先加载Struts框架栈
       <interceptor-ref name="testInter"></interceptor-ref> //加载自定义拦截器
      </interceptor-stack>      
     </interceptors>

 

b、设置拦截器拦截的Action

<action name="helloworld" class="test.HelloWorldAction">
      <interceptor-ref name="testInter"></interceptor-ref>

      <result name="success">/page/hello.jsp</result>
</action>

c、设置拦截所有包中的action

<default-interceptor-ref name="testStack"></default-interceptor-ref>

 

拦截器的生命周期类似于Servlet的Filter。init()负责创建实例,destroy()负责销毁,而intercept()则类似于doFilter()所有逻辑在该方法中执行。Struts拦截器的内部实现并非基于Servlet的Filter。所以运行机制跟Filter并不相同。

return invocation.invoke();返回一个字符串,该字符串默认返回action方法返回的字符,随后跳转到对应字符串的页面视图。

 

分享到:
评论

相关推荐

    详解Struts2拦截器

    这些内置拦截器已经足够满足大多数场景的需求,但开发人员也可以根据项目需求自定义拦截器。自定义拦截器可以通过继承`Interceptor`接口并实现其中的方法来完成。然后,在配置文件(如`struts.xml`)中注册这些...

    Struts2拦截器及其用法详细说明

    Struts2是一个强大的Java web开发框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式...通过自定义拦截器和合理配置,我们可以实现诸如日志记录、事务管理、权限验证等多种业务需求,大大提升了开发效率。

    Struts2应用开发详解06

    在“Struts2应用开发详解06”这一主题中,我们将深入探讨Struts2中的自定义方法以及相关的开发建议。 自定义方法在Struts2中扮演着至关重要的角色,它们允许开发者扩展框架的功能,以满足特定项目的需求。自定义...

    张龙老师Struts2应用开发详解源码(全)

    张龙老师的Struts2应用开发详解源码课程,旨在帮助开发者深入理解Struts2框架的工作原理,掌握其核心特性和最佳实践。 1. **Struts2框架概述**: Struts2是Struts1的升级版,由Apache软件基金会维护。它继承了...

    Struts2应用开发详解02

    在"Struts2应用开发详解02"的主题中,我们将深入探讨Struts2.2的独有特性以及其核心组件之一——StrutsPrepareAndExecute过滤器的源码分析。 首先,让我们来看看Struts2.2的独有特性: 1. **插件化架构**:Struts...

    Struts2应用开发详解01

    2. Interceptors(拦截器):拦截器是Struts2的一大特色,它们定义了一系列预定义和自定义的行为,如日志、异常处理、事务管理等。拦截器按预定义顺序执行,形成一个执行链。 3. Result:结果表示Action执行后的...

    struts2-tags-文档.rar

    Struts2是一个强大的Java web应用程序框架,它基于MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展性高的企业级应用。Struts2的标签库是其核心...总的来说,这个压缩包是学习和开发Struts2应用的宝贵资源。

    Struts2开发详解

    Struts2的配置主要在struts.xml文件中进行,包括Action配置、结果类型配置、拦截器配置等。Action配置定义了Action类及其关联的URL,结果类型配置决定了Action执行后的跳转逻辑,拦截器配置则允许在Action执行前后...

    Struts2的拦截器的使用详解

    开发自定义拦截器需要继承`org.apache.struts2.interceptor.Interceptor`接口或者`com.opensymphony.xwork2.interceptor.AbstractInterceptor`抽象类,并实现`intercept()`方法。在这个方法中,你可以添加自己的业务...

    struts2深入详解源码1-5章

    开发者可以通过自定义拦截器来扩展框架功能,实现如事务管理、性能监控等需求。 第四章可能涵盖Struts2的Ognl表达式语言和标签库。Ognl(Object-Graph Navigation Language)是Struts2中的默认表达式语言,用于在...

    struts2拦截器和验证框架(适合初学者-经藏版)

    通过以上详细介绍,我们了解了Struts2中的拦截器和验证框架的基本概念、如何创建自定义拦截器以及如何配置拦截器和使用验证功能。这些知识点对于初学者来说非常重要,能够帮助他们更好地理解和使用Struts2框架。

    struts2拦截器

    &lt;interceptor-ref name="自定义拦截器名"&gt; 参数名"&gt;参数值 &lt;/interceptor-ref&gt; ``` #### 五、Struts2内建拦截器 Struts2提供了许多内建的拦截器,它们覆盖了常见的功能需求,例如: - **模型驱动...

    Struts2.应用开发详解(第二讲).rar

    本教程“Struts2应用开发详解(第二讲)”是系列教程的一部分,共计五部分,我们将深入探讨Struts2的核心概念和技术。 在Struts2框架中,Model代表业务逻辑,View负责展示,而Controller则是这两者之间的协调者,处理...

    struts2 Interceptor详解

    Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...

    Struts.2权威指南--基于WebWork核心的MVC开发.0007.pdf

    通过自定义拦截器,可以实现高度灵活的业务逻辑控制。同时,Struts.2提供了多种结果类型,如dispatcher、redirect、chain等,用于控制页面跳转和数据返回,极大地简化了Web应用的开发流程。 ### 高级特性与框架整合...

    Struts2.应用开发详解(第一讲)

    Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级Web应用的开发过程。本讲解将详细阐述Struts2的基础概念、核心架构以及如何进行实际的应用开发。 一、...

    15年9月传智播客视频struts2

    - **自定义拦截器**:可以通过实现`Interceptor`接口或继承`AbstractInterceptor`类来创建自定义拦截器,以满足特定的需求。 #### 4. Struts2的视图技术 - **默认视图**:通常使用JSP作为默认视图技术。 - **其他...

    struts2 学习重点笔记

    在 struts.xml 中配置自定义拦截器栈。 **4.3 文件上传与下载** - **文件上传**:利用 Struts2 的 FileUploadInterceptor 实现文件上传功能。 - **文件下载**:可以通过 Action 的响应流来实现文件下载。 #### 五...

Global site tag (gtag.js) - Google Analytics