论坛首页 入门技术论坛

《WebWork in action》第五章

浏览 1502 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-26  
第5章: 使用interceptor增加功能

interceptor是WebWork最强大的特性之一,它可以在action和result执行前后进行处理。

一.  interceptor如何被调用

     1. 使用request封装类访问上传文件

        当请求(*.action的请求)进入WebWork的ServletDispatcher的时侯,WebWork会查找该action的位置,然后这些配置会
        构建一系列应用于这个action的interceptor。interceptor围绕着action和result的执行过程,当action和result执行
        完之后,每个interceptor都会按照相反的次序重新获得控制权。

        请求->webwork->interceptor1->interceptor2->action->result->interceptor2->interceptor1->webwork->响应

二.  使用预建的interceptor

     1. 工具interceptor
     2. 属性设置interceptor
     3. 工作流interceptor

     绝大多数预建的interceptor都扩展了com.opensymphony.xwork.interceptor.AroundInterceptor, 而不是直接实现Interceptor
     接口。

三.  使用预建的interceptor栈    

四.  构建你自己的interceptor

     interceptor必须是无状态的(没有实例变量),并且不能够使用任何ActionInvocation提供范围以外的API。

     示例:

     1. 认证:

        //暂时放一放,后面补起来 2007-9-25

     2. 在result执行之前获得回调控制

        //暂时放一放,后面补起来 2007-9-25

五.  interceptor vs Filter

     1. interceptor并不依赖于servlet容器;
     2. interceptor能够访问ActionContext、action和值栈等重要的对象;
     3. interceptor和action的生命周期是一样的,filter与request拥有一致的生命周期;

     不同的需求,可以在interceptor和Filter间有不同的选择;
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics