1: MyServletContextListener.java
2: package dc.gz.listeners;
3: import javax.servlet.ServletContext;
4: import javax.servlet.ServletContextEvent;
5: import javax.servlet.ServletContextListener;
6: import org.apache.commons.dbcp.BasicDataSource;
7:
8: /**
9: * Web應(yīng)用監(jiān)聽器
10: */
11: public class MyServletContextListener implements ServletContextListener {
12:
13: // 應(yīng)用監(jiān)聽器的銷毀方法
14: public void contextDestroyed(ServletContextEvent event) {
15: ServletContext sc = event.getServletContext();
16: // 在整個(gè)web應(yīng)用銷毀之前調(diào)用,將所有應(yīng)用空間所設(shè)置的內(nèi)容清空
17: sc.removeAttribute("dataSource");
18: System.out.println("銷毀工作完成...");
19: }
20:
21: // 應(yīng)用監(jiān)聽器的初始化方法
22: public void contextInitialized(ServletContextEvent event) {
23: // 通過這個(gè)事件可以獲取整個(gè)應(yīng)用的空間
24: // 在整個(gè)web應(yīng)用下面啟動的時(shí)候做一些初始化的內(nèi)容添加工作
25: ServletContext sc = event.getServletContext();
26: // 設(shè)置一些基本的內(nèi)容;比如一些參數(shù)或者是一些固定的對象
27: // 創(chuàng)建DataSource對象,連接池技術(shù) dbcp
28: BasicDataSource bds = new BasicDataSource();
29: bds.setDriverClassName("com.mysql.jdbc.Driver");
30: bds.setUrl("jdbc:mysql://localhost:3306/hibernate");
31: bds.setUsername("root");
32: bds.setPassword("root");
33: bds.setMaxActive(10);//最大連接數(shù)
34: bds.setMaxIdle(5);//最大管理數(shù)
35: //bds.setMaxWait(maxWait); 最大等待時(shí)間
36: // 把 DataSource 放入ServletContext空間中,
37: // 供整個(gè)web應(yīng)用的使用(獲取數(shù)據(jù)庫連接)
38: sc.setAttribute("dataSource", bds);
39: System.out.println("應(yīng)用監(jiān)聽器初始化工作完成...");
40: System.out.println("已經(jīng)創(chuàng)建DataSource...");
41: }
42: }