浏览 1502 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-26
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间有不同的选择; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |