关于拦截器
来源:互联网 发布:流浪诗人知乎 编辑:程序博客网 时间:2024/05/21 05:43
什么是拦截器?
拦截器,一般指的是在浏览器页面向服务端发出请求后,拦截誷求�EBC�对%%8��求进�28C一�s�列뚄操作�%%B或�%8%�在�09C�务器连回�9B0据�%%7�,在数5E6���P达滏览器界%%9���%8%,�D9A一些操뽜。63Cbr />%E%��截器�%%0般�%9%�于�49D�限验诎、�AB1码�%%4�理等操7E4��
拦�%%8�器%E%��基7E6��工作功理�FBC�
SpringMVC可以%%9���%8%配�7AE过滤器띥解BE5���%%1码问题<7r />①拦�%%A器�%9%�基�8BA�java的反�%%0�机%E%��的5EF��而过滤器是基于函数回调。
②拦截器依赖于框架容器,基于反射机制,只过滤请求。过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean。而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑
拦截器的实现:
1.实现HandlerInteceptor接口
2.将拦截器注册到SpringMVC框架中----跟Struts2一样,都需要在配置文件里配置
3.配置拦눪器的拦截规则(拦截哪些,不拦截哪些)
拦截器方法介绍:
preHandle:是否需要将当前的请求拦截下来,(返回true请求继续运行,返回false请求终止(包括action层也会终止),Object arg代表被拦截的请求的目标对象。)
-postHandle()方法的ModelAndView arg可以改变显示的视图或修改发往视图的信息方法。
afterCompletion:方法表示视图显示之后在执行该方法。(一般用于资源的销毁)
拦截器的其他实现方式:实现webRequestInterceptor接口。。。弊端:不能终止请求
拦截器的使用场景:解决乱码问题,解决权限验证问题
Struts2中大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能。例如:数据转移。类型转换,数据校验
拦截器方法在Action执行之前或者之后执行。
拦截器栈,相当于多个拦截器的组合。
拦截器工作原理:
拦截器的执行过程是一个递归的过程,
过滤器的执行流程和拦截器几乎一样
自定义拦截器:
方式一:实现Interceptor接口(不常用)
--void init():初始化拦截器所需资源
--void destroy() 释放在init()中分配的资源
--String intercept(ActionInvocation ai)throws Exception //进行真正意义上的拦截操作
实现拦截器功能
利用ActionInvocation参数获取Action状态
返回result字符串作为 逻辑视图
方式二:继承AbstractInterceptor类
--提供init()和destroy()方法的空实现
--只需要实现intercept方法即可
实现步骤:
1.创建拦截器
2.在配置文件struts.xml中定义拦截器并引用它
String result=invocation.invoke();//调用ActionInvocation中的下一个拦截器,如果是最后一个,就执行目标Action
Struts2内建拦截器:
params拦截器
--负责将请求参数设置为Action属性
statisParams拦截器
---将配置文件中action元素的子元素param叭82数设置为Action属性%�r />
servletConfig拦ƈ�器
---将溞于Servlet Api的各种对踡注入到Action,必须5E5��现对应接口,%%6��如HttpServletRequest
fileUpload拦截器
&nCsp; --对文件上传揞供支持,将文件6E5��元数据设置到%%5��应的Action属性
A3Cbr />
exception拦截器63Cbr /> ---捕获异�%%8,并且将异常昮射到用户自定义5E7��错误页面
validation拦截器 ---通过验%%8��框架进行数据验证
�r80发权限验证拦�%%A器
在Action中创建session对象,获取表单提交的用户信息,在拦截器类中通过判断session对象中有没有用户信息判断用户是否已登录,如果登录了才能访问后台管理页面
- 关于struts2拦截器
- 关于拦截器
- 关于struts2拦截器错误
- 关于struts2中的拦截器
- 关于struts2的拦截器
- 关于springmvc的拦截器
- 关于OKhttp的拦截器
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- 关于Struts2配置多个拦截器
- 关于struts2拦截器的问题
- 关于struts2的拦截器学习
- 关于拦截器的使用的方法
- 关于拦截器与过滤器的区别
- 关于html页面拦截器权限控制
- 关于拦截器超时的使用
- WebView实现的大致步骤
- Java开发中的23种设计模式之行为型模式(一)
- 迭代器将map或者list分批量操作
- ffmpeg源码分析--3.avformat_alloc_context与avformat_open_input
- 花花世界,不必当真
- 关于拦截器
- 千万级规模高性能、高并发的网络架构经验分享
- Supervisor安装与配置(Linux/Unix进程管理工具)
- slab内存分配
- ffmpeg源码分析--4.关于mpeg文件格式1总
- Node.js第一个代码
- 安卓开发:模仿微信,QQ评论输入框,使用PopupWindow完美实现
- Struts2框架校验
- android 修改framework下资源文件后如何编译