过滤器Filter与监听器Listener
过滤器Filter
过滤器也是一种servlet 它也可以对用户的请求进行处理 , 但是他所做的处理,只是一些轻量级的处理。Fileter就好像jsp页面与servlet之间的一道关卡,如果这个web应用有Filter那么,jsp页面的请求在到达要去的servlet之前,先被Filter解惑,在Filter做一些处理之后,然后再让该请求去它原本要去的servlet。同理,Filter也可以对servlet生成的响应,进行拦截处理,让后再让它去它原本要去的jsp页面。
一个Filter类,要实现javax.servlet.Filter接口,这个接口提供如下三个方法:
init(FilterConfig config) ------对生成的Filter对象进行初始化 传入的config对象 可以可以调用方法来获取该Filter在web.xml中的配置参数
destory() ------在销毁Filter对象之前,自动调用该方法对资源进行回收
doFilter(ServletRequest request , ServletResponse response, Filterchain chain)
------ 在该方法内对拦截到达请求或响应 进行一些处理 然后交给它 目的servlet或jsp页面
传入的request对象 表示 拦截到的request对象
传入的response对象 表示拦截到的response对象
传入的chain对象 可以通过调用chain.doFilter(request,response) 表示过滤器已经处理完了,将请求或者响应转发到它们想去的servlet
或者jsp页面
Filter实例对象的生命周期
牢记Filter也是一种提供轻量级服务的servlet,它提供服务同servlet一样,是通过实例对象调用处理方法
web应用加载→ 创建Filter类的实例对象 → 自动调用init()方法对该实例对象进行初始化 → 调用doFilter()方法对请求或响应进行处理 .........合适的时间 自动调用derstory()方法()进行资源回收 → 该Filter类的实例对象被销毁
Filter类的配置
监听器Listener
通过过滤器 和servlet 可以看出它们两者都是对请求或者响应提供服务的。一个web应用被启动之后 ,内部不仅仅是请求和响应在活动,还有session对象开始,结束,web应用开始,结束,等等很多事件,
而监听器就像一双耳朵,应用中发生了某些事件,而这些事件发生之后,我就要做一些处理 。
监听器也提供了好几个接口,用来监听不同的事件:
ServletContextListener接口 -------监听web应用的启动和关闭
ServletContextAttributeListener接口 -------监听application对象(ServletContext类的实例对象)内的值得变化
ServletRequestListener接口 --------监听request对象(ServletRequest类的实例对象)
ServletRequestAttributeListener接口 -----监听request对象(ServletRequest类的实例对象)内值的变化
HttpSessionListener接口 ------监听session对象(HttpSession类的实例对象)的开始和结束
HttpSessionAttribute接口 -----监听session对象(HttpSession类的实例对象)中值的变化
每个接口中都定义了若干方法 ,用于在某个事件被监听到之后自动调用,也是通过Listener实例对象调用方法实现的 。Listener实例对象和Filter实例对象,都是在web应用被加载时创建的,这点不同与servlet,因为servlet实例对象的创建根据配置不同,有两个时间点去创建。
Listener的配置
相对于Filter与Servlet来说,Listener的配置最简单 。
过滤器Filter与监听器Listener的更多相关文章
- 过滤器(filter),监听器(listener),与servlet的执行顺序
创建: 加载顺序 监听器-->过滤器-->Servlet.项目启动后,容器会首先创建声明的各种监听器,为后继的各个事件监听做准备,然后创建过滤器,最后是Servlet.销毁的时候是反序进行 ...
- 二十五、过滤器Filter,监听器Listener,拦截器Interceptor的区别
1.Servlet:运行在服务器上可以动态生成web页面.servlet的声明周期从被装入到web服务器内存,到服务器关闭结束.一般启动web服务器时会加载servelt的实例进行装入,然后初始化工作 ...
- Servlet过滤器Filter和监听器
一.Servlet过滤器的概念: *********************************************************************************** ...
- JavaWeb学习篇之----Servlet过滤器Filter和监听器
首先来看一下Servlet的过滤器内容: 一.Servlet过滤器的概念: ************************************************************** ...
- 8-过滤器Filter和监听器Listener
一.web监听器:监听特殊事件的发生1.监听实现步骤 a.写一个java类,实现特定的接口,重写相关方法 b.在web.xml中,牌配置 <listener> <listener-c ...
- Java Web(五) 监听器Listener
监听器概述 在上一篇里介绍了过滤器Filter,而Listener是Servlet的另一个高级特性.Listener用于监听Java Web程序中的事件,例如创建,修改,删除Session,reque ...
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...
- Introduction of Servlet Filter(介绍javaweb组件之一过滤器filter)
javaweb的三大组件都需要交给web服务器运行,都需要在web.xml文件中配置. ①Servlet:javax.servlet.Servlet通过http协议接受客户端的请求,并作出响应的Jav ...
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter ...
随机推荐
- jquery的动画学习--jquery权威指南
前面的fadeIn和fadeOut还有fadeTo以及sildeToggle还有sildeUp\sildeDown还有toggle还有show.hide等都经常用,就不再手写了,需要注意的是f ...
- [HNOI2015]开店
如果没有年龄区间 画图发现ans=\(\sum_{i=1}^n dis_i + n * dis_u - 2 * \sum_{i=1}^{n} dis_{lca(i, u)}\) 对\(\sum_{i= ...
- Vue-组件嵌套之——父组件向子组件传值
父组件向子组件传值步骤: 在这里先定义一下,相对本案例来说:App.vue是父组件,Second-module.vue是子组件. 一.首先,值肯定是定义在父组件中的,供所有子组件共享.所以要在父组件的 ...
- 标注-CRF条件随机场
1 概率无向图模型1.1 模型定义1.2 因子分解2 条件随机场的定义2.2 条件随机场的参数化形式2.3 条件随机场的简化形式2.4 条件随机场的矩阵形式 3 条件随机场的概率计算问题 3.1 前向 ...
- Java中高级面试题
一.基础知识: 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList:HashSet,TreeSet): 2)HashMap的底层实现,之后会问Co ...
- 如何使用Vue
我在学习前端框架的时候面临了很多的选择,比较流行的有react,angularJS,还有另外一个就是Vue,Vue相对于另外两个出现时间更晚,也更符合响应式(Reactive)组件化(Composab ...
- hadoop新增kerberos租户
第一步 在kerberos服务器所在主机 通过kadmin.local,也可以通过kadmin 输入用户密码登录 kadmin.local: addprinc -randkey it1@STARYEA ...
- win7上Android环境搭建以及调试
工欲善其事必先利其器,好记性不如烂笔头.要学习一门新的语言,首先必须得先搭环境,否则没法实践.如果之前按照网上的提示,搭建过环境,而且环境比较复杂的话,我相信隔很长一段时间后,就会忘记,到真正用的时候 ...
- 直播-rtmp学习
RTMP(实时消息传输协议),官方介绍如下: Adobe’s Real Time Messaging Protocol (RTMP), an application-level protocol de ...
- 自动化之路 Graphite监控上手指南
自动化运维怎能少了监控,推荐Graphite监控,下面是配置地址 http://www.infoq.com/cn/articles/graphite-intro/ Graphite官网 http:// ...