Java研发方向如何准备BAT技术面试答案(下)
来源:互联网 发布:数据库系统实现英文 编辑:程序博客网 时间:2024/05/20 18:47
一.拦截器与过滤器的区别
1、拦截器是基于Java的反射机制的,而过滤器是基于函数回调。
2、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
6、执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。
过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程(还没想到要做啥),再向上返回到过滤器的后续操作。
一个Filter 可负责拦截多个请求或响应:一个请求或响应也可被多个请求拦截。
创建一个Filter 只需两个步骤:
(1)创建Filter 处理类:
(2)在web.xml 文件中配置Filter 。
创建Filter 必须实现javax.servlet.Filter 接口,在该接口中定义了三个方法。
• void init(FilterConfig config): 用于完成Filter 的初始化。
• void destroy: 用于Filter 销毁前,完成某些资源的回收。
• void doFilter(ServletRequest request, ServletResponse response,FilterChain chain): 实现过滤功能,该方法就是对每个请求及响应增加的额外处理。
过滤器Filter也具有生命周期:init->doFilter->destroy,由部署文件中的filter元素驱动。在servlet2.4中,过滤器同样可以用于请求分派器,但须在web.xml中声明,<dispatcher>INCLUDE或FORWARD或REQUEST或ERROR</dispatcher>该元素位于filter-mapping中。
......更新中.......
- Java研发方向如何准备BAT技术面试答案(下)
- 如何准备BAT技术面试答案(下)——Java研发方向
- 如何准备BAT技术面试答案(下2)——Java研发方向
- Java研发方向如何准备BAT技术面试答案(下)
- Java研发方向如何准备BAT技术面试答案(下)
- 如何准备BAT技术面试答案(下)——Java研发方向
- 如何准备BAT技术面试答案(下2)——Java研发方向
- 如何准备BAT技术面试答案(下)——Java研发方向
- 如何准备BAT技术面试答案(下2)——Java研发方向
- Java研发方向如何准备BAT技术面试答案
- Java研发方向如何准备BAT技术面试答案(上)
- Java研发方向如何准备BAT技术面试答案(上)
- Java研发方向如何准备BAT技术面试答案(中)
- Java研发方向如何准备BAT技术面试答案(上)
- Java研发方向如何准备BAT技术面试答案(中)
- 如何准备BAT技术面试答案(上)——Java研发方向
- 如何准备BAT技术面试答案(中)——Java研发方向
- Java研发方向如何准备BAT技术面试答案(上)
- Android多语言切换
- Android悬浮窗使用及窗口设置相关
- SVN提交后自动通知到钉钉群
- 煤的顯微組分
- safety case读书笔记1
- Java研发方向如何准备BAT技术面试答案(下)
- 解析 Nginx 负载均衡
- perl 引用
- MPAndroidChart之LineChart项目使用心得
- struts2文件下载
- leetcode题解c++ | 241. Different Ways to Add Parentheses
- mysql基础语句练习
- A1059. Prime Factors (25)
- 浅谈语音控制功能在智能家居领域的应用