过滤器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的更多相关文章

  1. 过滤器(filter),监听器(listener),与servlet的执行顺序

    创建: 加载顺序 监听器-->过滤器-->Servlet.项目启动后,容器会首先创建声明的各种监听器,为后继的各个事件监听做准备,然后创建过滤器,最后是Servlet.销毁的时候是反序进行 ...

  2. 二十五、过滤器Filter,监听器Listener,拦截器Interceptor的区别

    1.Servlet:运行在服务器上可以动态生成web页面.servlet的声明周期从被装入到web服务器内存,到服务器关闭结束.一般启动web服务器时会加载servelt的实例进行装入,然后初始化工作 ...

  3. Servlet过滤器Filter和监听器

    一.Servlet过滤器的概念: *********************************************************************************** ...

  4. JavaWeb学习篇之----Servlet过滤器Filter和监听器

    首先来看一下Servlet的过滤器内容: 一.Servlet过滤器的概念: ************************************************************** ...

  5. 8-过滤器Filter和监听器Listener

    一.web监听器:监听特殊事件的发生1.监听实现步骤 a.写一个java类,实现特定的接口,重写相关方法 b.在web.xml中,牌配置 <listener> <listener-c ...

  6. Java Web(五) 监听器Listener

    监听器概述 在上一篇里介绍了过滤器Filter,而Listener是Servlet的另一个高级特性.Listener用于监听Java Web程序中的事件,例如创建,修改,删除Session,reque ...

  7. 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)

    一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...

  8. Introduction of Servlet Filter(介绍javaweb组件之一过滤器filter)

    javaweb的三大组件都需要交给web服务器运行,都需要在web.xml文件中配置. ①Servlet:javax.servlet.Servlet通过http协议接受客户端的请求,并作出响应的Jav ...

  9. SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】

    配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter ...

随机推荐

  1. JavaScript的基本使用

    一.JavaScript的简单介绍 JavaScript是一种属于网络的脚本语言(简称JS),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常Ja ...

  2. Hello English Again

    Currently, I just want to write something in English.Maybe I just want to review my Egnlish knowledg ...

  3. 区分replace()和replaceAll()

    replace():returns a string replacing all the old char or CharSequence to new char or CharSequence. r ...

  4. C#开发Open-Webkit-Sharp浏览器并支持前端alert显示

    看了网上的很多教程,但是总是总是只言片语的,可能不同的人遇到的问题不一样,他们就只列举了自己的问题,那么这里我来做一下总结吧,跟大家分享一下我的完整的开发过程 首先你需要准备Visual Studio ...

  5. Promise,我们来实战

    Promise的基础我就不说了,我更加关心的是Promise能带给我什么便利?这也是本文的内容所在. Promise.all 并发执行多个异步方法,统一返回结果,结果按照参数的顺序返回. const ...

  6. 变量类型、sprintf、不同类型之间的混合运算

    char 默认signed char 取值范围-128~127 unsigned char 取值范围0~255 unsigned char = 0 与unsigned char =‘0’是等效的 sp ...

  7. WP Super Cache+七牛云配置CDN加速,让你的网站秒开

    CDN加速网站是几乎所有的站长都在考虑的问题,CDN,全称是Content Delivery Network,即内容分发网络.所谓CDN加速,通俗的来说就是把原服务器上数据复制到其他服务器上,用户访问 ...

  8. 关于Sql server数据 MD5加密

    最近在写一个web项目时,需要在数据库中将用户密码等一类信息进行加密处理.数据加密算法有许多  ,各有各的优缺点;在  http://www.cnblogs.com/yangywyangyw/arch ...

  9. HyperLedger Fabric 1.1 手动部署单机单节点

    手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...

  10. 通向架构师的道路之 Tomcat 性能调优

    一.总结前一天的学习 从"第三天"的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: 吞吐量 Responsetime Cpuload MemoryUsage 我们也 ...