使用Listener类
当java web应用程序在web容器中运行时,在java web应用程序内部会不断发生各种事件,例如web应用的启动,暂停,销毁等。以及web应用中session开始和结束
这些web应用对开发者来说通常是看不见的。其实在servletapi中。提供了大量的监听器来监听web应用事件,其中Listener类是最为常用的。此类允许当web内部事件发生时回掉事件
监听器的方法。
2.Listener基础。
在java web应用程序中使用listener时,需要先定义Listener实现类,然后通过Annoation或在web.xml文件中进行配置Listener
与AWT事件编程是完全相同的。如下是web事件监听器的接口。
1)ServletContextListener监听web应用的启动和关闭
2)ServletContextAttributeListener监听ServletContext范围内属性的改变
3)ServletRequestListener监听用户的请求
4)ServletRequestAttributeListener监听ServletRequest范围内(request)内属性的变化
5)HttpSessionListener监听用户session的开始和结束
6)HttpSessionAttributeListener监听HttpSession范围内session内属性的改变。
Filter过滤器,如果有一个页面配置了多个Filter,其执行顺序为,在web.xml中配置的顺序,首先执行完成的过滤器是,最后配置的那个过滤器。
实例一、创建一个ServletContex的监听器。
ServletContextListener是最常用的Listener,可以在当前web应用被加载
时对web应用的相关资源进行初始化操作:创建数据库连接池,创建spring的ioc容器,读取当前web应用的初始化参数
步骤如下:
1.创建一个类HelloServletContextListener实现ServletContextListener接口
晚上两个接口中所包含的两个方法。
2.配置该监听器。
<!-- 配置Listener -->
一,上下文监听(ServletContext对象监听器)
1.上下文创建销毁监听:*(在服务器启动时,即Servlet容器(Tomcat)会执行创建的方法,也就是在服务器启动时application对象被创建)
(服务器关闭时,Servlet容器(Tomcat)会执行销毁的方法,application对象被销毁)
用途:如:可以在服务器启动时加载想要首先被加载的内容<但如果在这个时候加载的东西太多,服务器压力非常大,启动速度会变慢>
2.上下文容器监听(当向application中存放,添加,删除东西时,会分别触发监听器里面的三个方法)
配置监听器:(后面两个配置与这个相同)
二,会话监听(HttpSession对象监听器)
1.会话创建销毁监听:*(在浏览器启动时会创建会话(session容器被创建))(在浏览器启动时会销毁会话(session容器被销毁))
.2.会话容器监听
3会话绑定监听
三,请求监听(ServletRequest对象监听器)
1.请求创建销毁监听:**(当第二次访问某个request容器里面的东西时,因为容器已经被销毁,所以访问不存在)
.2.请求容器监听