锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦?/span> Servlet2.3 瑙勮寖涓坊鍔犱簡涓浜涚洃鍚?/span> web 搴旂敤涓噸瑕佷簨浠剁殑鑳藉姏銆傝繖欏瑰姛鑳藉彲浠ヨ鎴戜滑鏍規嵁浜嬩歡鐨勭姸鎬佹洿鏈夋晥鐨勫璧勬簮榪涜綆$悊鍜岃嚜鍔ㄥ寲榪涜銆傝繖閮ㄥ垎鎻忚堪浜?/span> servlet 鐨勪簨浠剁洃鍚紝鍖呭惈浠ヤ笅閮ㄥ垎錛?/span>
1錛?/font> 聽 浜嬩歡鐨勫垎綾誨拰 Listener 鎺ュ彛
2錛?/font> 聽 鍏稿瀷鐨勪簨浠剁洃鍚繃紼?/font>
3錛?/font> 聽 浜嬩歡鐩戝惉鐨勫0鏄庡拰璋冪敤
4錛?/font> 聽 浜嬩歡鐩戝惉緙栫爜鍜屽彂甯冨悜瀵?/font>
5錛?/font> 聽 浜嬩歡鐩戝惉鐨勬柟娉曞拰鐩稿叧鐨勭被
浜嬩歡鐨勫垎綾誨拰 Listener 鎺ュ彛
Servlet 浜嬩歡鏈変袱涓駭鍒細
1錛?/font> 聽 Application 綰у埆浜嬩歡
鍖呭惈鐫榪愯搴旂敤紼嬪簭鐨勮櫄鎷熸満綰у埆鐨勭浉鍏寵祫婧愬拰鐘舵侊紝鍗沖拰 servlet 鐨?/span> Context 瀵硅薄鐩稿叧銆?/span>
2錛?/font> 聽 Session 綰у埆鐨勪簨浠?/font>
鍖呭惈鐫涓涓崟涓鐢ㄦ埛鐨?/span> session 鐨勪竴緋誨垪璇鋒眰鐨勭浉鍏寵祫婧愬拰鐘舵侊紝鍗?/span> Http 鐨?/span> Session 瀵硅薄銆?/span>
鍦ㄤ笂闈袱涓駭鍒殑浜嬩歡錛屽張鍙垎鍒垎涓轟袱縐嶏細
1錛?/font> 聽 鐢熷懡鍛ㄦ湡鐨勬敼鍙?/font>
2錛?/font> 聽 灞炴х殑鏀瑰彉
浣犲彲浠ヤ負涓婇潰鍥涚浜嬩歡鍒涘緩涓涓垨澶氫釜鐩戝惉綾匯備竴涓崟涓鐨勭洃鍚被鍙互鐩戣澶氱浜嬩歡銆?/font>
鍒涘緩涓涓簨浠剁被鍙互浠?/span> javax.servlet 鍖呮垨 javax.servlet.http 鍖呬腑瀹炵幇鍚堥傜殑鎺ュ彛銆備笅琛ㄤ腑鍒楀嚭浜嗗洓縐嶄簨浠剁浉鍏崇殑鎺ュ彛銆?/span>
浜嬩歡縐嶇被 |
浜嬩歡鎻忚堪 |
鎺ュ彛 |
Context 鐢熷懡鍛ㄦ湡鐨勬敼鍙?/span> |
context 鐨勫緩绔嬪拰鍗沖皢鍏抽棴 context |
Javax.servlet.ServletContextListener |
Context 灞炴у肩殑鏀瑰彉 |
娣誨姞錛屽垹闄わ紝淇敼 context 鐨勫睘鎬у?/span> |
Javax..servlet.ServletContextAttributeListener |
Session 鐢熷懡鍛ㄦ湡鐨勬敼鍙?/span> |
Session 鐨勫垱寤猴紝娉ㄩ攢錛岃秴鏃?/span> |
Javax.servlet.http.HttpSessionListener |
Session 灞炴у肩殑鏀瑰彉 |
娣誨姞錛屽垹闄わ紝淇敼 session 鐨勫睘鎬у?/span> |
Javax.servlet.htpp.HttpSessionAttributeListener |
鍏稿瀷鐨勪簨浠剁洃鍚繃紼?/font>
鑰冭檻涓涓?/span> web 搴旂敤鏄敱涓緇勮闂暟鎹簱鐨?/span> servlet 緇勬垚鐨勩備竴涓吀鍨嬬殑浜嬩歡鐩戝惉鏈哄埗鏄繖鏍風殑錛屽垱寤轟竴涓?/span> context 鐢熷懡鍛ㄦ湡鐨勪簨浠舵潵綆$悊鏁版嵁搴撹繛鎺ワ紝榪欎釜鐩戝惉鍣ㄥ彲浠ユ湁濡備笅鐨勫姛鑳斤細
1錛?/font> 聽 榪欎釜鐩戝惉鍣ㄧ洃瑙嗙潃搴旂敤紼嬪簭鐨勫惎鍔?/font>
2錛?/font> 聽 榪欎釜搴旂敤紼嬪簭鍐欏叆鏃ュ織鍒版暟鎹簱涓茍涓旀妸榪炴帴瀵硅薄瀛樺偍鍦?/span> context 涓?/span>
3錛?/font> 聽 Servelt 浣跨敤榪炴帴瀵硅薄鏉ユ墽琛?/span> SQL
4錛?/font> 聽 鐩戝惉鍣ㄧ洃鍚簲鐢ㄧ▼搴忕殑鍗沖皢鍏抽棴
5錛?/font> 聽 鍦ㄥ叧闂簲鐢ㄧ▼搴忎箣鍓嶏紝鍏堝叧闂繛鎺ュ璞?/font>
浜嬩歡鐩戝惉鐨勫0鏄庡拰璋冪敤
浜嬩歡鐩戝惉鐨勫0鏄庡湪搴旂敤紼嬪簭鐨?/span> web.xml 閲岋紝鐢?/span> <listener> 鍏冪礌錛岃鍏冪礌鏄?/span> <web-app> 鐨勫瓙鍏冪礌銆傛瘡涓洃鍚櫒閮藉搴斾竴涓?/span> <listener> 錛屾湁涓涓?/span> <listener-class> 瀛愬厓绱犵敤鏉ユ寚瀹氬搴旂殑綾誨悕銆傚湪姣忕浜嬩歡涓紝浣犻渶瑕佹寚瀹氫綘鎯寵皟鐢ㄧ殑欏哄簭銆?/span>
鍦ㄥ簲鐢ㄧ▼搴忓惎鍔ㄤ箣鍚庯紝騫朵笖鍦ㄧ涓嬈¤姹備箣鍓嶏紝 servlet 瀹瑰櫒浼氬垱寤哄茍娉ㄥ唽姣忎釜鐩戝惉綾葷殑瀹炰緥銆傛瘡縐嶄簨浠訛紝鐩戝惉鍣ㄦ槸鎸夌収浠栦滑澹版槑鐨勯『搴忔潵娉ㄥ唽鐨勩傜劧鍚庯紝褰撳簲鐢ㄧ▼搴忓紑濮嬭繍琛岋紝姣忕浜嬩歡鐩戝惉鍣ㄥ畨瑁呬粬浠殑欏哄簭璋冪敤銆傚湪鏈鍚庝竴嬈¤姹備箣鍓嶏紝鎵鏈夌殑鐩戝惉鍣ㄩ兘淇濇寔媧誨姩鐘舵併?/span>
涓鏃﹀簲鐢ㄧ▼搴忓叧闂紝 session 浜嬩歡棣栧厛鍙戠敓錛屼互浠栦滑澹版槑鐨勯『搴忕浉鍙嶃傜劧鍚?/span> context 浜嬩歡鍙戠敓涔熸槸浠ュ0鏄庣殑欏哄簭鐩稿弽銆?/span>
涓嬮潰鏄竴涓緥瀛愶細
<web-app>
聽聽 <display-name>MyListeningApplication</display-name>
聽聽 <listener>
聽聽聽聽聽 <listener-class>com.acme.MyConnectionManager</listenerclass>
聽聽 </listener>
聽聽 <listener>
聽聽聽聽聽 <listener-class>com.acme.MyLoggingModule</listener-class>
聽聽 </listener>
聽聽 <servlet>
聽聽聽聽聽 <display-name>RegistrationServlet</display-name>
聽聽聽聽聽 ...
聽聽 </servlet>
</web-app>
鍋囪 MyConnectionMnanager 鍜?/span> MyLoggingModule 閮芥槸瀹炵幇 ServletContextListener 鎺ュ彛錛?/span> MyLoggingModule 涔熸槸瀹炵幇浜?/span> HttpSessionListener 鎺ュ彛銆?/span>
褰撳簲鐢ㄧ▼搴忚繍琛岋紝涓や釜鐩戝惉鍣ㄩ兘浼氱洃鍚?/span> context 鐢熷懡鍛ㄦ湡浜嬩歡錛?/span> MyLoggingModule 鐩戝惉鍣ㄨ繕浼氱洃鍚?/span> session 鐢熷懡鍛ㄦ湡銆傚湪 context 鐢熷懡鍛ㄦ湡涓紝 MyConnectionMananger 浼氶鍏堝紑濮嬬洃鍚紝鍥犱負瀹冨0鏄庡湪鍓嶉潰銆?/span>
浜嬩歡鐩戝惉鍣ㄧ殑緙栫爜鍜屽彂甯冩寚鍗?/font>
璇鋒敞鎰忎簨浠剁洃鍚櫒綾葷殑浠ヤ笅瑙勫垯鍜屾寚鍗楋細
l 聽聽聽聽聽聽聽聽 鍦ㄥ綰跨▼鐨勫簲鐢ㄧ▼搴忎腑錛屽睘鎬у彲鑳藉悓鏃舵敼鍙樸傝繖鏄笉闇瑕?/span> Servlet 瀹瑰櫒鏉ュ悓姝ョ粨鏋溾曗曞湪榪欑鎯呭喌涓嬬洃鍚被鏈韓璐熻矗淇濇寔鏁版嵁鐨勫畬鏁存с?/span>
l 聽聽聽聽聽聽聽聽 姣忎釜鐩戝惉綾婚兘蹇呴』鏈変竴涓?/span> public 鐨勯浂鍙傛暟鐨勬瀯閫犲嚱鏁般?/span>
l 聽聽聽聽聽聽聽聽 姣忎釜鐩戝惉綾繪枃浠跺繀欏繪墦鍖呭埌 WAR 鏂囦歡錛屼篃鍙互鏄湪 /WEB-INF/classes 鎴栨槸鍖呭惈鍦?/span> /WEB-INF/lib 涓嬬殑 JAR 鏂囦歡涓?/span>
娉ㄦ剰錛氬湪鍒嗗竷寮忕殑鐜涓紝浜嬩歡鐩戝惉綾葷殑浣滅敤鍩熸槸鍖呭惈榪欎釜閮ㄧ講鎻忚堪鏂囦歡鐨勮櫄鎷熸満銆備笉闇瑕佸垎甯冨紡鐨?/span> Web 瀹瑰櫒鏉ヤ紶閫?/span> servlet 鐨?/span> context 浜嬩歡鎴栨槸 session 浜嬩歡鍒板叾浠栫殑铏氭嫙鏈恒傝繖涓湪 Sun Microsystem 鐨?/span> Java Servlet 瑙勮寖錛?/span> 2.3 鐗堟湰銆?/span>
浜嬩歡鐩戝惉鍣ㄧ殑鏂規硶鍜岀浉鍏崇殑綾?/font>
榪欓儴鍒嗗垪鍑轟簡浜嬩歡鐩戝惉鍣ㄧ殑鏂規硶錛屽綋 servlet 鐨?/span> context 浜嬩歡鎴栨槸 servlet 鐨?/span> session 浜嬩歡鍙戠敓鏃訛紝瀹瑰櫒灝嗕細璋冪敤浠栦滑銆傝繖浜涙柟娉曠殑杈撳叆鐨勪簨浠跺璞$殑綾誨瀷涓嶄竴鏍鳳紝鍥犳涓涓嬭璁轟簨浠剁被鍜屼粬浠殑鏂規硶銆?/span>
ServletContextListener 鏂規硶錛?/span> ServletContextEvent 綾?/span>
ServletContextListener 鎺ュ彛瑙勮寖浠ヤ笅鐨勬柟娉曪細
聽聽聽聽聽聽 void contextInitialized(ServletContextEvent sce)
聽聽聽聽聽聽聽聽聽聽聽聽聽 servlet 瀹瑰櫒璋冪敤榪欎釜鏂規硶鏉ラ氱煡鐩戝惉鍣紝 servlet 鐨?/span> context 宸茬粡寤虹珛騫朵笖搴旂敤紼嬪簭鍑嗗澶勭悊璇鋒眰銆?/span>
聽聽聽聽聽聽 void contextDestory(ServletContextEvent sce)
聽聽聽聽聽聽聽聽聽聽聽聽聽 servlet 瀹瑰櫒璋冪敤榪欎釜鏂規硶鏉ラ氱煡鐩戝惉鍣ㄥ簲鐢ㄧ▼搴忓嵆灝嗗叧闂?/span>
Servlet 瀹瑰櫒鍒涘緩涓涓?/span> java.servlet.ServletContextEvent 瀵硅薄浣滀負璋冪敤 ServletContextListener 鏂規硶鐨勮緭鍏ャ?/span> ServletContextEvent 綾誨寘鍚互涓嬫柟娉曪紝浣犵殑鐩戝惉鍣ㄥ彲浠ヨ皟鐢?/span>
ServletContext getServletContext()
鐢ㄨ繖涓柟娉曡繑鍥炲凡鍒涘緩鐨勬垨鏄皢瑕侀攢姣佺殑 servlet context 瀵硅薄錛屼粠涓綘鍙互寰楀埌浣犳兂瑕佺殑淇℃伅銆傦紙鏈畬寰呯畫錛?/span>
聽
聽
聽
聽
聽
聽