listener和filter

listener和filter快速入门

Posted by 石福鹏 on 2018-03-12

一、监听器接口 Listener

  • 介绍

来自于Servlet规范中的一组接口【8个】
专门用于监听【域对象生命周期变化】以及【一对象共享数据变化情况】
监听器接口实现类,有开发人员负责实现

  • 【域对象】

定义:在某个范围内,可以为Servlet之间提供共享数据的对象

分类:

SetvletContext application :全局作用对象,正在tomcat运行期间,可以为当前工程中的 所有的Servlet提供共享数据

HttpSession session :会话作用域对象,在一次会话过程中,为参与本次会话的Servlet提供共享数据

HttpServletRequest request: 请求作用域对象,在一次请求处理过程中,比如【请求转发】,为参与本次请求的所有Servlet提供共享数据

  • 共享数据的变化

二、监听器应用介绍

1.JDBC操作数据库的时间消耗的地方

1) Connection创建的时候

2) Connection销毁的时候

2.JDBC运行时提升数据库解决方案

JDBC 运行时,几部创建连接,也不销毁连接

3.数据库连接池管理方案

在项目启动的时候预先创建一定数量的Connection,

用户来访时,讲一个空闲的Connection交给JDBC来使用

用户访问完毕后,将本次使用的Connection置空闲状态,已备下一个用户使用

项目关闭的时候将Connection关闭

  • 数据库连接池实现难点

1、如何确保Connection在项目运行期间一直处于存活状态

使用application引用这些Connection
2、如何得知项目启动时刻和关闭时刻
使用ServletContextListenr

三、过滤器接口

来自于Servlet规范中的一个接口,可以再请求到达目标资源文件之前进行拦截,从而可以判断【本次接口是否合法】或者对拦截请求进行增强

  • 实现

1、创建一个Filter接口的实现类

2、重写dofilter请求 对拦截的请求进行合法性判断或者增强处理

3、web.Xml注册过滤器 让tomcat在启动时,负责创建过滤器的对象,通知tomcat,何种请求将会被过滤器拦截处理

四、FilterChain 接口

1、接口实现类仍然是由Tomcat提供

2、本质上就是一个数组

3、数据存放对本次请求进行拦截的所有过滤器对象

4、这个过滤器链条相当于一个调度,觉得哪一个过滤器先执行,哪一个过滤器后执行

推荐文章