标签:
Listener:当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件,如Web应用被启动、Web应用被停止,用户Session开始,用户session结束、用户请求到达等,这些对Web事件对开发者是透明的。
ServletAPI提供了大量的监听器来监听Web应用的内部事件,从而允许当Web内部事件发生时回调事件监听器内的方法。
使用步骤:定义Listener实现类
通过Annotation或在web.xml文件中配置Listener.
常用Listener类:
ServletContextListener:用于监听Web应用的启动和关闭
ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变
ServletRequestListener:用于监听用户请求
ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变
HttpSessionListener:用于监听用户session的开始和结束
HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变
1 package sanglp.servlet; 2 3 import javax.servlet.ServletContext; 4 import javax.servlet.ServletContextEvent; 5 import javax.servlet.ServletContextListener; 6 import javax.servlet.annotation.WebListener; 7 import java.sql.Connection; 8 import java.sql.DriverManager; 9 import java.sql.SQLException; 10 11 /** 12 * Created by Administrator on 2016/10/5. 13 */ 14 @WebListener 15 public class GetConnListener implements ServletContextListener { 16 17 //应用启动时,该方法被调用 18 @Override 19 public void contextInitialized(ServletContextEvent servletContextEvent) { 20 try{ 21 //获取该应用的ServletContext实例 22 ServletContext application=servletContextEvent.getServletContext(); 23 //从配置参数中获取驱动 24 String driver=application.getInitParameter("driver"); 25 String url=application.getInitParameter("url"); 26 String user=application.getInitParameter("user"); 27 String pass=application.getInitParameter("pass"); 28 Class.forName(driver); 29 Connection conn= DriverManager.getConnection(url,user,pass); 30 application.setAttribute("conn",conn); 31 }catch(Exception e){ 32 e.getMessage(); 33 } 34 } 35 36 //应用关闭时,给方法被调用 37 @Override 38 public void contextDestroyed(ServletContextEvent servletContextEvent) { 39 //取得该应用的ServletContext实例 40 ServletContext application=servletContextEvent.getServletContext(); 41 Connection conn=(Connection)application.getAttribute("conn"); 42 //关闭数据库连接 43 if(conn!=null){ 44 try{ 45 conn.close(); 46 }catch(SQLException e){ 47 e.printStackTrace(); 48 } 49 } 50 } 51 /* 52 ServletContextListener获取的是Web应用的配置参数,而不是Servlet和Filter获取本身的配置参数。因为Listener配置十分简单只能指定实现类,不能配置初始化参数 53 <listener> 54 <listener-class>sanglp.servlet.GetConnListener</listener-class> 55 </listener>*/ 56 }
【JavaEE企业应用实战学习记录】getConnListener
标签:
原文地址:http://www.cnblogs.com/dream-to-pku/p/5933208.html