1.啟動(dòng)一個(gè)WEB項(xiàng)目的時(shí)候,容器(如:Tomcat)會(huì)去讀它的配置文件web.xml.讀兩個(gè)節(jié)點(diǎn): <listener></listener> 和 <context-param></context-param>?
2.緊接著,容器創(chuàng)建一個(gè)ServletContext(上下文),這個(gè)WEB項(xiàng)目所有部分都將共享這個(gè)上下文.?
3.容器將<context-param></context-param>轉(zhuǎn)化為鍵值對(duì),并交給ServletContext.?
4.容器創(chuàng)建<listener></listener>中的類實(shí)例,即創(chuàng)建監(jiān)聽.?
5.在監(jiān)聽中會(huì)有contextInitialized(ServletContextEvent args)初始化方法,在這個(gè)方法中獲得?
ServletContext = ServletContextEvent.getServletContext();?
context-param的值 = ServletContext.getInitParameter("context-param的鍵");?
6.得到這個(gè)context-param的值之后,你就可以做一些操作了.注意,這個(gè)時(shí)候你的WEB項(xiàng)目還沒有完全啟動(dòng)完成.這個(gè)動(dòng)作會(huì)比所有的Servlet都要早.?
換句話說,這個(gè)時(shí)候,你對(duì)<context-param>中的鍵值做的操作,將在你的WEB項(xiàng)目完全啟動(dòng)之前被執(zhí)行.?
7.舉例.你可能想在項(xiàng)目啟動(dòng)之前就打開數(shù)據(jù)庫.?
那么這里就可以在<context-param>中設(shè)置數(shù)據(jù)庫的連接方式,在監(jiān)聽類中初始化數(shù)據(jù)庫的連接.?
8.這個(gè)監(jiān)聽是自己寫的一個(gè)類,除了初始化方法,它還有銷毀方法.用于關(guān)閉應(yīng)用前釋放資源.比如說數(shù)據(jù)庫連接的關(guān)閉.?
9.... 以上資料來自<<Head First Servlet&JSP>>
2.緊接著,容器創(chuàng)建一個(gè)ServletContext(上下文),這個(gè)WEB項(xiàng)目所有部分都將共享這個(gè)上下文.?
3.容器將<context-param></context-param>轉(zhuǎn)化為鍵值對(duì),并交給ServletContext.?
4.容器創(chuàng)建<listener></listener>中的類實(shí)例,即創(chuàng)建監(jiān)聽.?
5.在監(jiān)聽中會(huì)有contextInitialized(ServletContextEvent args)初始化方法,在這個(gè)方法中獲得?
ServletContext = ServletContextEvent.getServletContext();?
context-param的值 = ServletContext.getInitParameter("context-param的鍵");?
6.得到這個(gè)context-param的值之后,你就可以做一些操作了.注意,這個(gè)時(shí)候你的WEB項(xiàng)目還沒有完全啟動(dòng)完成.這個(gè)動(dòng)作會(huì)比所有的Servlet都要早.?
換句話說,這個(gè)時(shí)候,你對(duì)<context-param>中的鍵值做的操作,將在你的WEB項(xiàng)目完全啟動(dòng)之前被執(zhí)行.?
7.舉例.你可能想在項(xiàng)目啟動(dòng)之前就打開數(shù)據(jù)庫.?
那么這里就可以在<context-param>中設(shè)置數(shù)據(jù)庫的連接方式,在監(jiān)聽類中初始化數(shù)據(jù)庫的連接.?
8.這個(gè)監(jiān)聽是自己寫的一個(gè)類,除了初始化方法,它還有銷毀方法.用于關(guān)閉應(yīng)用前釋放資源.比如說數(shù)據(jù)庫連接的關(guān)閉.?
9.... 以上資料來自<<Head First Servlet&JSP>>