`
peigang
  • 浏览: 166864 次
  • 性别: 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 详解文档

    第一个Struts 2应用开发 解决Struts 2配置文件无提示问题 Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理...

    J2EE应用开发详解

    124 8.5.2 拦截器的实现原理 124 8.5.3 Struts2的内置拦截器 124 8.5.4 拦截器的配置和使用 125 8.5.5 自定义拦截器 126 8.6 一个简单的Struts2应用 130 8.7 小结 140 第9章 JSF 141 9.1 JSF技术简介 141 9.1.1 JSF...

    Struts2入门教程(全新完整版)

    2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait...

    java +web开发应用详解

    第2篇为SSH整合技术篇,包括第8-17章,介绍了Struts2常用技术、拦截器、Hibernate高级技术等知识;第3篇为ExtJS框架篇,包括第18-22章,介绍了ExtJS常用组件、表格组件、TreePanel组件等知识;第4篇为综合实例篇,...

    低清版 大型门户网站是这样炼成的.pdf

    2.6.3 使用自定义拦截器 98 2.7 小结 100 第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 ...

    Java Web程序设计教程

    6.1.3自定义拦截器 115 6.2类型转换器 117 6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3输入校验 123 6.3.1输入校验的必要性...

    spring chm文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.5.3.1. RedirectView 13.5.3.2. redirect:前缀 13.5.3.3. forward:...

    Spring API

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    Spring中文帮助文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    Spring 2.0 开发参考手册

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    webx3框架指南PDF教程附学习Demo

    • Struts • Webwork • Tapestry • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在...

Global site tag (gtag.js) - Google Analytics