JavaWeb之Listener&Filter
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 拦截包含页面
以上是关于JavaWeb之Listener&Filter的主要内容,如果未能解决你的问题,请参考以下文章
JavaWeb详解(第三篇)之Servlet基础简介-过滤器Filter&Listener监听器
JavaWeb Listener之HttpSessionBindListener