锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
姝ラ濡備笅錛?br />
1銆?lt;TOMCAT-HOME>\webapps\servlets-examples\WEB-INF\classes\compressionFilters
2銆丆ompressionFilter.java錛孋ompressionResponseStream.java錛孋ompressionServletResponseWrapper.java
3銆亀eb.xml
]]>
]]>
]]>
1. Servlet涓殑Listener鍜孍vent:
鍦↗SP 2.0/Servlet 2.4涓紝鍏辨湁鍏釜Listener鎺ュ彛錛屽叚涓狤vent綾誨埆銆?
ServletContextListener鎺ュ彛
[鎺ュ彛鏂規硶] contextInitialized()涓?contextDestroyed()
[鎺ユ敹浜嬩歡] ServletContextEvent
[瑙﹀彂鍦烘櫙] 鍦–ontainer鍔犺澆Web搴旂敤紼嬪簭鏃訛紙渚嬪鍚姩 Container涔嬪悗錛夛紝浼氬懠鍙玞ontextInitialized()錛岃屽綋瀹瑰櫒縐婚櫎Web搴旂敤紼嬪簭鏃訛紝浼氬懠鍙玞ontextDestroyed ()鏂規硶銆?
ServletContextAttributeListener
[鎺ュ彛鏂規硶] attributeAdded()銆?attributeReplaced()銆乤ttributeRemoved()
[鎺ユ敹浜嬩歡] ServletContextAttributeEvent
[瑙﹀彂鍦烘櫙] 鑻ユ湁瀵硅薄鍔犲叆涓篴pplication錛圫ervletContext錛夊璞$殑灞炴э紝鍒欎細鍛煎彨attributeAdded()錛屽悓鐞嗗湪緗崲灞炴т笌縐婚櫎灞炴ф椂錛屼細鍒嗗埆鍛煎彨attributeReplaced()銆乤ttributeRemoved()銆?
HttpSessionListener
[鎺ュ彛鏂規硶] sessionCreated()涓巗essionDestroyed ()
[鎺ユ敹浜嬩歡] HttpSessionEvent
[瑙﹀彂鍦烘櫙] 鍦╯ession 錛圚ttpSession錛夊璞″緩绔嬫垨琚秷鐏椂錛屼細鍒嗗埆鍛煎彨榪欎袱涓柟娉曘?
HttpSessionAttributeListener
[鎺ュ彛鏂規硶] attributeAdded()銆?attributeReplaced()銆乤ttributeRemoved()
[鎺ユ敹浜嬩歡] HttpSessionBindingEvent
[瑙﹀彂鍦烘櫙] 鑻ユ湁瀵硅薄鍔犲叆涓簊ession錛圚ttpSession錛夊璞$殑灞炴э紝鍒欎細鍛煎彨attributeAdded()錛屽悓鐞嗗湪緗崲灞炴т笌縐婚櫎灞炴ф椂錛屼細鍒嗗埆鍛煎彨attributeReplaced()銆?attributeRemoved()銆?
HttpSessionActivationListener
[鎺ュ彛鏂規硶] sessionDidActivate()涓?sessionWillPassivate()
[鎺ユ敹浜嬩歡] HttpSessionEvent
[瑙﹀彂鍦烘櫙] Activate涓嶱assivate鏄敤浜庣疆鎹㈠璞$殑鍔ㄤ綔錛屽綋session瀵硅薄涓轟簡璧勬簮鍒╃敤鎴栬礋杞藉鉤琛$瓑鍘熷洜鑰屽繀欏繪殏鏃跺偍瀛樿嚦紜洏鎴栧叾瀹冨偍瀛樺櫒鏃訛紙閫忚繃瀵硅薄搴忓垪鍖栵級錛屾墍浣滅殑鍔ㄤ綔縐頒箣涓篜assivate錛岃岀‖鐩樻垨鍌ㄥ瓨鍣ㄤ笂鐨剆ession瀵硅薄閲嶆柊鍔犺澆JVM鏃舵墍閲囩殑鍔ㄤ綔縐頒箣涓篈ctivate錛屾墍浠ュ鏄撶悊瑙g殑錛宻essionDidActivate()涓?sessionWillPassivate()鍒嗗埆浜嶢ctiveate鍚庝笌灝哖assivate鍓嶅懠鍙?
ServletRequestListener
[鎺ュ彛鏂規硶] requestInitialized()涓?requestDestroyed()
[鎺ユ敹浜嬩歡] RequestEvent
[瑙﹀彂鍦烘櫙] 鍦╮equest錛圚ttpServletRequest錛夊璞″緩绔嬫垨琚秷鐏椂錛屼細鍒嗗埆鍛煎彨榪欎袱涓柟娉曘?
ServletRequestAttributeListener
[鎺ュ彛鏂規硶] attributeAdded()銆?attributeReplaced()銆乤ttributeRemoved()
[鎺ユ敹浜嬩歡] HttpSessionBindingEvent
[瑙﹀彂鍦烘櫙] 鑻ユ湁瀵硅薄鍔犲叆涓簉equest錛圚ttpServletRequest錛夊璞$殑灞炴э紝鍒欎細鍛煎彨attributeAdded()錛屽悓鐞嗗湪緗崲灞炴т笌縐婚櫎灞炴ф椂錛屼細鍒嗗埆鍛煎彨attributeReplaced()銆?attributeRemoved()銆?
HttpSessionBindingListener
[鎺ュ彛鏂規硶] valueBound()涓巚alueUnbound()
[鎺ユ敹浜嬩歡] HttpSessionBindingEvent
[瑙﹀彂鍦烘櫙] 瀹炵幇HttpSessionBindingListener鎺ュ彛鐨勭被鍒紝鍏跺疄渚嬪鏋滆鍔犲叆鑷硈ession錛圚ttpSession錛夊璞$殑灞炴т腑錛屽垯浼氬懠鍙?valueBound()錛屽鏋滆浠巗ession錛圚ttpSession錛夊璞$殑灞炴т腑縐婚櫎錛屽垯浼氬懠鍙玽alueUnbound()錛屽疄鐜癏ttpSessionBindingListener鎺ュ彛鐨勭被鍒笉闇鍦╳eb.xml涓瀹氥?
2. 濡備綍娉ㄥ唽Servlet涓殑浜嬩歡 :
瀹炵幇涓婇潰榪欏嚑涓帴鍙g殑綾誨埆錛岄櫎浜咹ttpSessionBindingListener澶?蹇呴』鍦╳eb.xml涓悜瀹瑰櫒娉ㄥ唽錛屽鍣ㄦ墠浼氬湪瀵瑰簲鐨勪簨浠跺彂鐢熸椂鍛煎彨瀵瑰簲鐨勭被鍒紝濡傦細
< listener >
< listener-class > demo.servlet.listener.CustomServletContextListener
3. Servlet浜嬩歡鐨勫簲鐢ㄥ疄渚?
鐪嬪埌榪欓噷,浣犱篃璁鎬細鏈夌枒闂? 浜嗚В榪欎簺 listener鍜宔vent 鏈変粈涔堢敤鍛?鎴戝鉤鏃跺紑鍙戞病鏈夌敤鍒拌繖浜?涓鏍蜂篃鑳藉畬鎴愪換鍔″晩.
涓嶉敊,鍦ㄦ棩甯哥殑寮鍙戜腑寰堝皯鐢ㄥ埌榪欎簺浜嬩歡澶勭悊鐨勬柟闈?浣嗘槸鍦ㄦ煇浜涙儏鍐典笅浣跨敤浜嬩歡澶勭悊鏈哄埗鍗村彲浠ヨ揪鍒頒簨鍗婂姛鍊嶇殑鏁堟灉,渚嬪涓嬮潰涓や釜渚嬪瓙:
4.Java綾誨疄渚?br />
==========
//渚﹀惉鍚姩鍜屽叧闂?br />
import javax.servlet.ServletContextListener;
import javax.servlet.*;
public class TigerListen implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce)
{
System.out.print("Init") ;
}
public void contextDestroyed(ServletContextEvent sce)
{
System.out.print("Destroved") ;
}
}
瀵瑰簲鐨剋eb.xml鏄?br />
============
<!--l version="1.0" encoding="UTF-8-->
TigerListen
============