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)内属性的改变

 package sanglp.servlet;

 import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; /**
* Created by Administrator on 2016/10/5.
*/
@WebListener
public class GetConnListener implements ServletContextListener { //应用启动时,该方法被调用
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
try{
//获取该应用的ServletContext实例
ServletContext application=servletContextEvent.getServletContext();
//从配置参数中获取驱动
String driver=application.getInitParameter("driver");
String url=application.getInitParameter("url");
String user=application.getInitParameter("user");
String pass=application.getInitParameter("pass");
Class.forName(driver);
Connection conn= DriverManager.getConnection(url,user,pass);
application.setAttribute("conn",conn);
}catch(Exception e){
e.getMessage();
}
} //应用关闭时,给方法被调用
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
//取得该应用的ServletContext实例
ServletContext application=servletContextEvent.getServletContext();
Connection conn=(Connection)application.getAttribute("conn");
//关闭数据库连接
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
/*
ServletContextListener获取的是Web应用的配置参数,而不是Servlet和Filter获取本身的配置参数。因为Listener配置十分简单只能指定实现类,不能配置初始化参数
<listener>
<listener-class>sanglp.servlet.GetConnListener</listener-class>
</listener>*/
}

【JavaEE企业应用实战学习记录】getConnListener的更多相关文章

  1. 【JavaEE企业应用实战学习记录】optiontransferselect实现两个列表选择框

    <%@ page contentType="text/html; charset=GBK" language="java"%> <%@tagl ...

  2. 【JavaEE企业应用实战学习记录】logFilter

    package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import ja ...

  3. 【JavaEE企业应用实战学习记录】struts2实现登录并获取各个范围的数据

    package sanglp; import com.opensymphony.xwork2.*; /** * Created by Administrator on 2016/10/6. */ pu ...

  4. 【JavaEE企业应用实战学习记录】struts配置文件详细解析

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  5. 【JavaEE企业应用实战学习记录】struts2登录

    <%-- login.jsp Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 16:26 To chang ...

  6. 【JavaEE企业应用实战学习记录】struts国际化

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 16:26 To change this tem ...

  7. 【JavaEE企业应用实战学习记录】servlet3.0上传文件

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 14:20 To change this tem ...

  8. 【JavaEE企业应用实战学习记录】sessionListener

    package sanglp.servlet; import javax.servlet.ServletContext; import javax.servlet.annotation.WebList ...

  9. 【JavaEE企业应用实战学习记录】requestListener

    package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebListener; import ...

随机推荐

  1. LINUX内核笔记:自旋锁

    目录 自旋锁作用与基本使用方法? 在SMP和UP上的不同表现? 自旋锁与上下文 使用spin_lock()后为什么不能睡眠? 强调:锁什么? 参考   1.自旋锁作用与基本使用方法? 与其他锁一样,自 ...

  2. Qt回忆录之配置开发环境

    光阴荏苒,用Qt开发已经一年多了.在Windows上开发GUI,最常用的莫过于MFC,WinForm,WPF以及Qt.MFC和Qt是基于C++,而WinForm和WPF一般是基于C#,当然在PC上基于 ...

  3. input文本框和img验证码对齐问题

    左边放input,右边img验证码,然后一直不能对齐,如图: img老是比input高出一个头,然后调的头都大了还是不行,照例百度之, 给input和img都加一个 vertical-align:mi ...

  4. checkbox勾选判断

    var xieYi=document.getElementById("xieYi"); if(!xieYi.checked){ alert("请先阅读并勾选购买协议!&q ...

  5. NopCommerce功能与特点介绍

    [本文转自]http://www.cnblogs.com/nopcommerce-b2c/p/3758676.html 前两节我们主要介绍了NopCommerce下载与安装和NopCommerce中文 ...

  6. 详细说说 Google Test Certified 的各级——Level 2,3

    转载请联系作者,谢谢!   No releases with red tests基于Level1搭建的持续集成,持续发布选用的CL(changelist)就可以取自CI系统最后跑通的CL,因为持续集成 ...

  7. Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)【转】【修改】

    一.基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成 ...

  8. web端通信技术

    1.web端通信技术:长连接.长轮询.websocket; 什么是长连接.长轮询? 就是客户端不停的向服务器发送请求以获取最新的数据信息.这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它 ...

  9. BZOJ 2005: [Noi2010]能量采集

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MBSubmit: 3312  Solved: 1971[Submit][Statu ...

  10. APIO2015泛做

    可以在UOJ上提交也可以在bzoj上提交(权限) A. Bali Sculptures 对于前72%的数据,按位考虑,然后跑一点沙茶dp就行了. dp:用f[x][y]表示前x位分为y段是否满足条件. ...