Struts2---拦截器
来源:互联网 发布:果蔬清洗机有用吗 知乎 编辑:程序博客网 时间:2024/05/19 13:56
拦截器介绍
拦截器 的使用 ,源自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>
0 0
- 【Struts2】Struts2中拦截器
- struts2拦截器
- Struts2拦截器
- struts2.0拦截器
- struts2.0 拦截器
- struts2拦截器学习
- struts2 拦截器
- Struts2拦截器(Interceptor)
- struts2.0拦截器
- 用上struts2拦截器
- struts2拦截器简介
- Struts2:拦截器概述
- Struts2拦截器(Interceptor)
- struts2 拦截器
- 关于struts2拦截器
- Struts2的拦截器
- struts2拦截器
- Struts2拦截器总结
- 自定义滚动条(1)
- RecycleView添加分割线
- Spring @Cacheable注解类内部调用失效问题
- 微信支付
- 携程Android App插件化和动态加载实践
- Struts2---拦截器
- 放在WEB-INF下的jsp文件无法被直接读取
- JavaScript数组
- 自定义滚动条(2)
- how to debug c problem
- web前端表格学习
- python记事
- Java:String使用equals和==比较的区别(转)
- 3年工作经验你的程序员应该具备的技能