JavaWeb之Listener&Filter

1. 回顾一下三个作用域

启动tomcat时会创建ServletContext,关闭服务器,将项目从服务器中移除会销毁ServletContext

请求项目中的任何资源都会创建ServletRequest,请求结束,销毁ServletRequest

请求项目中的JSP资源会创建HttpSession,Session过期,服务器正常或非正常退出都会销毁HttpSession

2. Listener

监听器,监听某个事件的发生或状态改变

监听器的内部机制就是接口回调

  • WEB监听器

    总共有8个,划分为三种类型

  • 监听三个作用域的创建和销毁

    ServletContextListener 利用它,在创建ServletContext的时候,完成初始化操作,执行任务调度

    ServletRequestListener 利用它,监听ServletRequest的创建和销毁

    HttpSessionListener 利用它,统计在线人数

  • 监听三个作用域的属性状态变更

    可以监听作用域中值添加|替换|移除操作

    ServletContextAttributeListener

    ServletRequestAttributeListener

    HttpSessionAttributeListener

  • 监听HttpSession存储值的状态变更

    这类监听器不用注册

    HttpSessionBindingListener JavaBean实现该接口即可监听,监听对象在HttpSession中的绑定和移除

3. Filter

过滤器,就是对客户端发送的数据进行过滤,其实就是起到了拦截器的作用

可以对一些敏感词汇进行过滤

统一设置编码类型

自动登录

...

  • 如何使用过滤器?

    定义一个类,实现Filter接口
    注册过滤器
    <filter>
      <filter-name>FilterDemo</filter-name>
      <filter-class>com.kernel.filter.FilterDemo</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>FilterDemo</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  • Filter生命周期

    在服务器启动时,创建Filter,当服务器停止,Filter销毁

  • Filter执行顺序

    客户端发出请求,经过过滤器,过滤器通过chain.doFilter()方法放行后,才能到达Servlet,如果有多个过滤器,按照注册的顺序,一次经过每个过滤器,只有所有过滤器放行后,才会到达Servlet

  • dispatcher

    REQUEST 拦截所有请求

    FOWORD 拦截所有转发

    ERROR 拦截页面出错

    INCLUDE 拦截包含页面

原文地址:http://blog.51cto.com/13559120/2329158

时间: 2024-10-19 20:35:02

JavaWeb之Listener&Filter的相关文章

web.xml 相关 listener filter servlet

突然发现知识忘记了···记一下··· 配置节的加载顺序: context-param -> listener -> filter -> servlet (同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的) Filter:  在请求一个资源或者从一个资源返回信息的时候执行过滤操作的插件(形如权限控制) javax.servlet.Filter接口 对用户请求的预处理    Filter不是一个servlet,它不能产生一个response,它能够在一个r

web.xml之context-param,listener,filter,servlet加载顺序及其周边

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

web.xml 之contextParam,listener,filter,servlet的加载顺序

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

Java Web(九) -- Listener &amp; Filter

Listener & Filter Listener 监听器 1.能做什么事? 监听某一个事件的发生. 状态的改变. 2.监听器的内部机制 其实就是接口回调. 接口回调 1. 需求: A在执行循环,当循环到5的时候, 通知B. 事先先把一个对象传递给 A , 当A 执行到5的时候,通过这个对象,来调用B中的方法. 但是注意,不是直接传递B的实例,而是传递一个接口的实例过去. Web监听器 总共有8个 划分成三种类型 1.定义一个类,实现接口 2.注册 | 配置监听器 监听三个作用域创建和销毁 r

JavaWeb:Listener

1.ServletContextListener: 1).what:监听 ServletContext  对象被创建或销毁的 Servlet 监听器. 2).how:  >创建一个实现了 ServletContextListener 的类,并且实现其中的两个方法 public class HelloServletContextListner implements ServletContextListener >在 web.xml 文件中配置 Listener <listener>

10. Dubbo原理解析-代理之Listener &amp; filter

Listener ExporterListener: dubbo在服务暴露(exporter)以及销毁暴露(unexporter)服务的过程中提供了回调窗口,供用户做业务处理.ProtocolListenerWrapper在暴露过程中构建了监听器链 public class ProtocolListenerWrapper implements Protocol { public <T> Exporter<T> export(Invoker<T>invoker) thro

JavaWEB 通过Listener理解域对象生命周期

利用 ServletRequestListener.HttpSessionListener 以及 ServletContextListener 可以把request,session,以及Application的生命周期进一步的做一了解 > request:是一个请求,当一个响应返回时,即被销毁.当发送一个请求时被创建.注意:请求转发的过程是 一个 request 对象. 注:在页面上放的 属性 ,在servlet中时获取不到的,因为页面响应后request已经销毁了. 注:重定向是两个请求. >

JavaWeb监听器Listener

在监听器的对象作用领域中一般涉及监听主体(监听器).监听客体(事件源).监听事件(事件). 在警察监听小偷中,警察是监听器,小偷是事件源,偷东西是时间. JavaWeb中监听器的事件源(ServletContext.HttpSession.ServletRequest.JavaBean) 1.ServletContext 生命周期监听:ServletContextListener 属性监听:ServletContextAttributeListener 2.HttpSession 生命周期监听:

JAVAWEB的Listener

学习监听器 1监听器是什么 :监听对象的变化或者监听事件的触发 2有什么作用:当被监听的对象状态改变时,触发对应的方法 3怎么用: ①声明监听器,(继承对应的监听器) ②重写监听方法,并实现自己需要的功能 ③注册监听器JavaWeb的监听器 1运行原理 ①自定义监听器,并实现对应的监听器(ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener) ②实现了对应的监听