利用监听器减少创建连接的时间
首先,监听器实际就是一个实现特定接口的java程序,这个java程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件时,监听器某个方法会立即执行
重写监听器的初始化和销毁方法,可以用来实现减少创建连接的时间
@WebListener
public class OneListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
//Tomcat启动时,预先创建20个connection,
//在userDao.add方法执行时将创建好的connection交给add方法
JdbcUtil util = new JdbcUtil();
Map map=new HashMap();
for (int i=1;i<=20;i++){
Connection con = util.getCon();
System.out.println("在Http服务器启动时,创建Connection"+con);
map.put(con,true);//true表示通道处于空闲,false表示通道正在被使用
}
//为了在Http服务器运行期间,一直都可以使用20个Connection
//将connection放到全局作用域对象中
ServletContext application = servletContextEvent.getServletContext();
application.setAttribute("key1",map);
}//map被销毁
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
//Http服务器关闭时刻将全局作用域对象20个Connection销毁
ServletContext application = servletContextEvent.getServletContext();
Map map =(Map) application.getAttribute("key1");
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Connection con = (Connection) it.next();
if(con!=null){
System.out.println(con+"被销毁");
}
}
}
}

浙公网安备 33010602011771号