过滤器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 ...
随机推荐
- 期望$DP$ 方法总结
期望\(DP\) 方法总结 这个题目太大了,变化也层出不穷,这里只是我的一点心得,不定期更新! 1. 递推式问题 对于无穷进行的操作期望步数问题,一般可用递推式解决. 对于一个问题\(ans[x]\) ...
- 【learning】二分图最大匹配的König定理
[吐槽] 嗯好吧这个东西吧..其实是一开始做一道最小点覆盖的题的时候学到的奇妙深刻的东西 然后发现写了很长 然后就觉得不拎出来对不起自己呀哈哈哈哈 咳咳好的进入正题 [正题] 在这里码一下最小点覆盖的 ...
- 动态增加表单元素并获取元素的text和value提交
以上是效果图 需求是这样的: 专家设置好条件,然后设备检测到达到相应的条件之后,设备发出提醒给用户. 这就需要专家设置好能看懂的条件之后,然后把给专家看的,正常人能看懂的条件和发送的设备的,设备能够识 ...
- WPF自学入门(七)WPF 初识Binding
今天记录一下Binding的基础和具体的使用方法,说起这个Binding,在WPF中,Binding是很重要的特征,在传统的Windows软件来看,大多数都是UI驱动程序的模式,也可以说事件驱动程序, ...
- WebService下实现大数据量的传输
设置RemotingFormat = SerializationFormat.Binary;再序列化,通过WebService传输,客户端接收,再反序列化,确实效果大大的优于直接传送DataSet,不 ...
- 杭电oj-1002-A+B Problem
Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...
- lvm创建卷组和格式化
* 前提条件:/dev/sdb为一块空的硬盘 * 创建物理卷:pvcreate /dev/sdb * 创建卷组:vgcreate vol_name /dev/sdb (vol_name 为卷组名字) ...
- Python基础-week04
本节内容摘要:#Author:http://www.cnblogs.com/Jame-mei 装饰器 迭代器&生成器 Json & pickle 数据序列化 软件目录结构规范 作业:A ...
- Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core
问题 <Spring 实战>第5章,在 IDEA 中 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre ...
- 数据库操作sql
一.把从另外一张表里查到的值插入到前表: 1. 表结构完全一样 insert into 表1 select * from 表2 2. 表结构不一样(这种情况下得指定列名) insert into 表1 ...