首页 > 学院 > 开发设计 > 正文

Struts2---拦截器

2019-11-08 01:11:48
字体:
来源:转载
供稿:网友

拦截器介绍 拦截器 的使用 ,源自SPRing AOP(面向切面编程)思想 拦截器 采用 责任链 模式 * 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。 * 责任链每一个节点,都可以继续调用下一个节点,也可以阻止流程继续执行

在struts2 中可以定义很多个拦截器,将多个拦截器按照特定顺序 组成拦截器栈 (顺序调用 栈中的每一个拦截器 )

1、 struts2 所有拦截器 都必须实现 Interceptor 接口 2、 AbstractInterceptor 类实现了 Interceptor 接口. 并为 init, destroy 提供了一个空白的实现

所有实际开发中,自定义拦截器 只需要 继承 AbstractInterceptor类, 提供 intercept 方法实现

3、 常用struts2 拦截器

<interceptor-ref name="modelDriven"/> 模型驱动 <interceptor-ref name="fileUpload"/> 文件上传 <interceptor-ref name="params"> 参数解析封装 <interceptor-ref name="conversionError"/> 类型转换错误 <interceptor-ref name="validation"> 请求参数校验 <interceptor-ref name="workflow"> 拦截跳转 input 视图使用Filter 进行权限控制 ---- 过滤所有web请求 (所有web资源访问)使用拦截器 进行权限控制 ---- 主要拦截对Action访问 (不能拦截jsp

配置拦截器 方式一

<!-- 注册拦截器 --> <interceptors> <interceptor name="privilege" class="cn.itcast.interceptor.PrivilegeInterceptor"></interceptor> </interceptors> <action name="book_*" class="cn.itcast.action.BookAction" method="{1}" > <!-- 使用拦截器 --> <!-- 当使用自定义拦截器 后,默认拦截器 就会失效 --> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="privilege"></interceptor-ref> </action>方式二<!-- 注册拦截器 --> <interceptors> <interceptor name="privilege" class="cn.itcast.interceptor.PrivilegeInterceptor"></interceptor> <!-- 自定义拦截器栈 --> <interceptor-stack name="privilegeStack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="privilege"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 设置当前包 所有Action 都使用 自定义拦截器栈 --> <default-interceptor-ref name="privilegeStack"></default-interceptor-ref>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表