锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲喷奶水中文字幕电影,亚洲国产成人精品女人久久久 ,亚洲精品网站在线观看不卡无广告http://www.tkk7.com/seaairland/category/10704.html<script type="text/javascript"> <!-- google_ad_client = "pub-6825418521341757"; google_ad_width = 120; google_ad_height = 240; google_ad_format = "120x240_as"; google_ad_type = "text_image"; google_ad_channel ="6369214374"; google_color_border = "336699"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> zh-cnFri, 02 Mar 2007 07:20:26 GMTFri, 02 Mar 2007 07:20:26 GMT60Commons-collection http://www.tkk7.com/seaairland/archive/2006/05/04/44513.htmlchenhuichenhuiThu, 04 May 2006 04:15:00 GMThttp://www.tkk7.com/seaairland/archive/2006/05/04/44513.htmlhttp://www.tkk7.com/seaairland/comments/44513.htmlhttp://www.tkk7.com/seaairland/archive/2006/05/04/44513.html#Feedback0http://www.tkk7.com/seaairland/comments/commentRss/44513.htmlhttp://www.tkk7.com/seaairland/services/trackbacks/44513.htmlCommons欏圭洰鐞嗚В
聽聽聽聽聽聽聽 鍦╦ava欏圭洰涓湁寰堝鍏敤鐨勭畻娉曞疄鐜板拰宸ュ叿綾?br />聽聽聽聽聽聽聽 jarkata欏圭洰緇勬妸榪欎簺鍏敤鐨勪笢瑗夸綔涓哄紑婧愰」鐩姞浠ュ疄鐜?br />聽聽聽聽聽聽聽 浠ュ悗鍦ㄩ」鐩嬌鐢ㄤ腑灝卞彲浠ョ粺涓綆楁硶錛屼笉蹇呭啓璞tringUtil鎴栬匘ateHelper涔嬬被鐨勫伐鍏風被浜?br />聽聽聽聽聽聽聽 寰堝綆楁硶涔熶笉蹇呭啀鏌ユ枃妗o紝鐔鍐欎釜閫氬浜嗭紝:)
聽聽聽聽聽聽聽 鏈榪戦渶瑕侀拡瀵筩ollection浣滀竴浜涙墿灞曪紝鑷繁鍐欎簡鍗婂ぉ錛屾墠鍙戠幇commons-collection閲岄潰宸茬粡鏈変簡瀹炵幇
聽聽聽聽聽聽聽 鑰屼笖姣旇嚜宸卞啓鐨勫ソ鏇村畬鍠勶紝鏁堢巼鏇撮珮
聽聽聽聽聽聽聽 绱㈡ф潵鐮旂┒涓涓嬭繖涓」鐩紝鍥犱負寰堝寮婧愰」鐩篃浣跨敤瀹?br />聽聽聽聽聽聽聽 浠ュ悗鐪嬪紑婧愰」鐩唬鐮佺殑鏃跺欎篃灝變笉鐢ㄩ偅涔堣垂鍔涗簡
聽聽聽聽聽聽聽
姒傝堪
聽聽聽聽聽聽聽 棣栧厛榪欎釜鍖呮槸鍩轟簬JDK1.2寮鍙戠殑錛屾墍浠ヤ互鍚庡湪璋冪敤鐨勬椂鍊欏氨涓嶇敤鍏沖績JDK鐗堟湰鐨勯棶棰?br />聽聽聽聽聽聽聽 鍏朵簩榪欎釜鍖呭湪澶ч儴鍒嗙殑寮婧愰」鐩腑浣跨敤錛屽凡緇忔垚涓轟簨瀹炰笂鐨勮涓氶泦鍚堢被澶勭悊鏍囧噯
鐗規ф弿榪?br />聽聽聽聽聽聽聽 Bag闆嗗悎鎺ュ彛錛岀敤浜庡湪闆嗗悎涓繚瀛樹竴涓璞$殑澶氭鎷瘋礉
聽聽聽聽聽聽聽 Buffer鎺ュ彛錛岀敤浜庡鐞咶IFO絳夊畾涔夊ソ縐婚櫎欏哄簭鐨勭粨鍚堢被
聽聽聽聽聽聽聽 BidiMap鎺ュ彛錛岀敤浜庨氳繃value鏌ユ壘key
聽聽聽聽聽聽聽 MapIterator錛岃繖涓氨涓嶇敤澶氳浜嗭紝浠ュ悗灝變笉鐢ㄤ嬌鐢╩ap.keyset.iterator鍘誨鐞唌ap寰幆浜?br />聽聽聽聽聽聽聽 鍨嬪埆媯鏌ヨ楗幫紝鍏跺疄灝辨槸鍙互鍒涘緩涓涓叿鏈夋寚瀹氬瀷鍒殑闆嗗悎綾?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 姣斿瀹氫箟浜嗕竴涓暣鍨嬬殑list錛屽氨涓嶈兘鍐嶅悜榪欎釜list閲岄潰鏀維tring錛屽惁鍒欎細鎶涘嚭寮傚父
聽聽聽聽聽聽聽 杞崲淇グ錛屽氨鏄湪鍚戦泦鍚堜腑鏀懼叆瀵硅薄鏃訛紝鍙互灝嗗璞¤漿鎹負闇瑕佺殑綾誨瀷鐨勫璞″啀鏀懼叆闆嗗悎涓?br />聽聽聽聽聽聽聽 緇勫悎闆嗗悎錛屼竴涓潪甯稿ソ鐨勬蹇碉紝灝辨槸鎶婂涓泦鍚堝綋涓涓泦鍚堝幓浣跨敤
聽聽聽聽聽聽聽 鎺掑簭Map鍜孲et錛屼繚鎸侀泦鍚堢殑鍔犲叆欏哄簭
聽聽聽聽聽聽聽 Identity Map錛岃繖涓狹ap涓嬌鐢?=鑰屼笉鏄痚qual()鏂規硶鍘繪瘮杈冨璞?/p>

聽聽聽聽聽聽聽 * Reference map that allows keys and/or values to be garbage collected under close control
聽聽聽聽聽聽聽 鏇村鐨勬瘮杈冨疄鐜?br />聽聽聽聽聽聽聽 鏇村鐨勮凱浠e疄鐜?br />聽聽聽聽聽聽聽 灝嗘暟緇勬垨鏋氫婦綾誨瀷瑁呮崲鍒伴泦鍚堢被涓紝闈炲父濂界敤鐨勫姛鑳斤紝姣曠珶array鐨勫姛鑳芥湁闄?br />聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 * Utilities to test or create typical set-theory properties of collections such as union, intersection, and closure

涓漢瀵逛簬涓浜涚被鐨勪綋浼?br />聽聽聽聽聽聽聽 絎竴涓氨鏄疶ypedList(榪樻湁map,set閮戒竴鏍?
聽聽聽聽聽聽聽 鍙互鍒涘緩涓涓猄tring鐨凩ist錛屾垨鑰呬竴涓彧鑳芥斁鍏ユ寚瀹欳lass鐨凩ist錛岄伩鍏嶇紪紼嬫椂鍊欑殑璇啓
聽聽聽聽聽聽聽 java緙栫▼鎬濇兂涓彁鍒拌繃鍒涘緩鎸囧畾鍨嬪埆鐨勯泦鍚堢殑闂錛屼笉榪囦嬌鐢ㄨ繖涓被灝變笉鐢ㄩ偅涔堥夯鐑︿簡

聽聽聽聽聽聽聽 CollectionUtils
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 閽堝闆嗗悎榪涜涓?騫?鍒ゆ柇鏄惁鍖呭惈/絳変簬絳夊伐鍏鋒柟娉?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏌ユ壘涓涓泦鍚堜腑鏌愪釜瀵硅薄鍑虹幇鐨勬暟閲?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏌ユ壘錛堟垨榪囨護錛変竴涓泦鍚堜腑鏌愮class鐨勫瓙闆嗗悎錛屾垨鑰呰綆楁暟閲?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 灝嗛泦鍚堜腑鐨勫璞¤繘琛岃漿鎹㈠鐞?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 灝嗘暟緇勬垨鏋氫婦瀵硅薄鏀懼叆闆嗗悎涓?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵閽堝鎵鏈夐泦鍚堢被鐨刬ndex錛宻ize錛実et絳夋柟娉?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵鏁扮粍緲昏漿鏂規硶
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵闆嗗悎鐨勫悓姝ヤ慨楗?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 姣斿HashMap鏈韓鏄笉鏀寔鍚屾鐨勶紝浣嗚繖涓被鎻愪緵浜嗕竴涓悓姝ヤ慨楗?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浠ュ悗鍐嶄嬌鐢ㄧ粡榪囦慨楗板悗鐨凥ashMap鏃跺氨涓嶇敤鑰冭檻鍚屾鐨勯棶棰樹簡
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵紱佹淇敼闆嗗悎鐨勫伐鍏鋒柟娉?br />聽聽聽聽聽聽聽 鍚孋ollectionUtils涓鏍瘋繕鏈夌浉搴旂殑ListUtils錛孲etUtils絳夊伐鍏風被
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欎簺宸ュ叿綾繪彁渚涚殑鏂規硶鍩烘湰閮藉嚭鐜板湪CollectionUtils涓?/p>

聽聽聽聽聽聽聽 ArrayStack
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓涓戶鎵胯嚜ArrayList鐨凷tack瀹炵幇
聽聽聽聽聽聽聽 BeanMap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓涓敤浜庡垎鏋恓avaBean鐨凪ap瀹瑰櫒錛屼釜浜烘劅瑙夌敤浜庢祴璇曟瘮杈冩柟渚?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥犱負beanUtils綾諱篃鍙互鍋氳繖涓被鐨勪簨鎯咃紝榪欎釜綾繪柟渚跨殑鏄鍙栨墍鏈夊睘鎬у茍鏄劇ず
聽聽聽聽聽聽聽 BidiMap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 灝辨槸涓涓彲浠ラ氳繃value鏌ユ壘key鐨凪ap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 闄愬埗錛氭坊鍔犲璞℃椂錛寁alue涓嶈兘鐩稿悓
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥犱負榪欎釜綾昏繕鏈変竴涓柟娉曞氨鏄垱寤轟竴涓弽鍚慚ap錛屾妸value浣滀負key錛屾妸key浣滀負value鍐嶅垱寤轟竴涓狹ap
聽聽聽聽聽聽聽 BoundedCollection鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎵鏈夊疄鐜版鎺ュ彛鐨勯泦鍚堝潎琚檺鍒朵簡闆嗗悎澶у皬錛屼笉榪囪秴榪囩害鏉熺殑澶у皬
聽聽聽聽聽聽聽 Buffer鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 闈炲父濂界殑涓涓帴鍙o紝瀹炵幇浜嗘寜鐓ф寚瀹氶『搴忕Щ闄ゅ璞?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙互鐢ㄦ潵瀹炵幇FIFO錛孡IFO絳夌畻娉?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涔熷彲浠ラ氳繃Comprator鏉ユ瀯閫狅紝鎸囧畾紜畾鐨勭Щ闄ょ畻娉?br />聽聽聽聽聽聽聽 Ordered**鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ潵瀹炵幇闆嗗悎鎺掑簭
聽聽聽聽聽聽聽 Predicate鎺ュ彛錛堟柇璦錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ潵楠岃瘉鎴栬繃婊ゅ璞?br />聽聽聽聽聽聽聽 Transformer鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ潵鎶婁竴涓璞¤漿鎹㈡垚鍙︿負涓涓璞?br />聽聽聽聽聽聽聽 Closure鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ潵灝侀棴涓孌典唬鐮侊紝閽堝瀵硅薄榪涜鎸囧畾鐨勫鐞?br />聽聽聽聽聽聽聽 Unmodifiable鎺ュ彛
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎵浠ュ疄鐜幫紙鎴栧寘鍚簡錛夋鎺ュ彛鐨勫璞″潎涓嶅彲浠ユ敼鍙?/p>

聽聽聽聽聽聽聽 ComparatorUtils綾?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 瀹炵幇浜嗗悇縐嶆瘮杈?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 甯冨皵鍊兼瘮杈冨疄鐜?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 null鍒ゆ柇姣旇緝
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 姣旇緝閾劇殑瀹炵幇
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鑾峰彇min錛宮ax瀵硅薄
聽聽聽聽聽聽聽 AbstractDualBidiMap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓涓寘鍚簡涓や釜bidiMap鐨勬娊璞$被
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥犱負bidiMap鍙互鍋氬弻鍚戞煡鎵?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 緇ф壙AbstractDualBidiMap鍚庯紝鍐呴儴鐨勪袱涓猰ap涓涓拡瀵筴ey鎺掑簭錛屼竴涓拡瀵箆alue鎺掑簭
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙互鍔犲揩璁塊棶閫熷害
聽聽聽聽聽聽聽 EnumerationUtils
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍖呭惈浜唗oList()鏂規硶錛屽彲浠ョ畝鍖栦唬鐮?br />聽聽聽聽聽聽聽 ExtendedProperties 姣旇緝濂界帺
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵浜嗗寮虹殑properties澶勭悊
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 澶勭悊澶氳
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 澶勭悊澶氫釜鐩稿悓鐨勫0鏄?br />聽聽聽聽聽聽聽 Fast***
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鎻愪緵浜嗗湪澶氱嚎紼嬩腑閽堝闆嗗悎鐨勫揩閫熻闂?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 褰撹繘琛屽彧璇繪搷浣滄椂錛屼笉榪涜鍚屾澶勭悊
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 褰撹繘琛屽啓鎿嶄綔鏃?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍏嬮殕鏁翠釜闆嗗悎
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 閽堝鍏嬮殕鎵ц淇敼
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浣跨敤鍏嬮殕鏇挎崲鐜版湁瀵硅薄
聽聽聽聽聽聽聽 MultiHashMap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 瀹炵幇浜嗗key鐨刴ap
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 褰揼et鏃惰繑鍥瀕ist瀵硅薄
聽聽聽聽聽聽聽 StaticBucketMap ***********錛堥珮鏁堬級
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏄竴涓潪甯擱珮鏁堢殑Map錛?get, put, remove 鍜?containsKey聽 鎿嶄綔閮借榪涜浜嗕紭鍖?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欎釜Map閲岄潰鏈夊涓狟uck錛堟《錛夌敤浜庡瓨鍌ㄦ暟鎹?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欐牱鍦ㄥ綰跨▼涓彇鏁版嵁鐨勪嬌鐢紝鏄粠涓嶅悓鐨勬《涓彇錛岀湡姝e疄鐜頒簡鍚屾鏈哄埗
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 褰撶劧錛屽湪榪涜鎵歸噺鎿嶄綔鏃舵棤娉曚繚璇佸師瀛愭э紝瑕佹敞鎰忚繖涓鐐?/p>

chenhui 2006-05-04 12:15 鍙戣〃璇勮
]]>
Java鍒╁櫒Jakarta Commons(涓) http://www.tkk7.com/seaairland/archive/2006/05/02/44375.htmlchenhuichenhuiTue, 02 May 2006 07:36:00 GMThttp://www.tkk7.com/seaairland/archive/2006/05/02/44375.htmlhttp://www.tkk7.com/seaairland/comments/44375.htmlhttp://www.tkk7.com/seaairland/archive/2006/05/02/44375.html#Feedback0http://www.tkk7.com/seaairland/comments/commentRss/44375.htmlhttp://www.tkk7.com/seaairland/services/trackbacks/44375.html
Commons欏圭洰鍒嗕負涓ら儴鍒嗭細Sandbox鍜孋ommons搴撱係andbox鐢ㄤ簬嫻嬭瘯銆傛湰鏂囧叧娉ㄥ簱緇勪歡錛屽寘鎷畠浠粈涔堟椂鍊欎嬌鐢紝鍦ㄩ偅閲岋紝浠ュ強鐢ㄤ緥瀛愯鏄庡浣曚嬌鐢ㄣ?br />
綆瑕佷粙緇?br />
Jakarta Commons欏圭洰婧愪簬閲嶇敤錛屽叾涓殑紼嬪簭鍖呭繀欏葷‘淇濊兘澶熼噸鐢ㄣ傛湁涓浜涘寘鏉ヨ嚜浜庡叾浠栭」鐩紝渚嬪閫氱敤鏃ュ織鍖呮槸Jakarta Struts鐨勪竴閮ㄥ垎銆傚綋寮鍙戣呭彂鐜版煇涓寘瀵逛簬鍏朵粬欏圭洰寰堟湁鐢紝鍙互緙╃煭寮鍙戝懆鏈燂紝浠栦滑鍐沖畾灝嗚繖浜涘寘鍋氭垚閫氱敤緇勪歡銆傝繖灝辨槸Jakarta Commons欏圭洰銆?br />
瑕佺湡姝e仛鍒板彲閲嶇敤錛屾瘡涓▼搴忓寘蹇呴』鐙珛浜庡叾浠栬緝澶х殑妗嗘灦鍜岄」鐩傚洜姝わ紝Commons欏圭洰涓殑姣忎釜鍖呭湪寰堝ぇ紼嬪害涓婃槸鐙珛鐨勶紝涓嶄粎鐩稿浜庡叾浠栭」鐩紝鐢氳嚦瀵逛簬鍏朵粬鍖呬篃鏄姝ゃ傝繚鍙嶈繖涓鍘熷垯鐨勬儏鍐墊槸瀛樺湪鐨勶紝浣嗗喅澶у鏁版儏鍐墊槸浣跨敤鎴愮啛鐨凙PIs銆備緥濡傦紝Betwixt鍖呭緩绔嬪湪XML APIs鍩虹涔嬩笂銆傚敖綆¤繖涓」鐩殑鏈剰鏄緩绔嬩笉渚濊禆鍏朵粬緇勪歡鐨勭▼搴忓寘銆?br />
澶у鏁扮▼搴忓寘鍗佸垎綆媧侊紝浠ヨ嚦浜庣己灝戝繀瑕佺殑鏂囨。銆佺淮鎶ゅ拰甯姪銆傛湁浜涘寘鐢氳嚦鍙湁閿欒鐨勮繛鎺ュ拰鏋佸皯鐨勬枃妗c傚ぇ澶氭暟鎯呭喌涓嬶紝浣犲彧鑳借嚜宸辨懜绱㈠浣曚嬌鐢ㄥ畠浠紝涓轟粈涔堜嬌鐢ㄥ畠浠傚笇鏈涜繖綃囨枃绔犲浣犳湁甯姪銆?br />
娉ㄦ剰錛欽akarta Commons涓嶢pache Commons鏄笉鍚岀殑銆傚悗鑰呮槸Apache Software Foundation錛圓SF錛夌殑欏剁駭欏圭洰銆傝屽墠鑰呮槸ASF鐨勫彟涓涓《綰ч」鐩甁akarta鐨勫瓙欏圭洰錛屾槸鏈枃浠嬬粛鐨勫璞°傝屼笖錛孞akarta Commons鍙嬌鐢↗ava銆傚湪鏈枃涓瑿ommons鎸囩殑鏄疛akarta Commons銆?br />

緇勪歡

涓轟簡緇勭粐鏂逛究錛屾垜灝?8涓紙鍖呮嫭EL錛孡atka鍜孞exl錛塁ommons緇勪歡鍒嗕負浜旂被銆傚涓嬭〃錛?br />
緇勪歡綾誨埆
緇勪歡

Web鐩稿叧
FileUpload錛孒TTPClient鍜孨et

XML鐩稿叧
Betwixt錛孌igester錛孞elly鍜孞XPath

宸ュ叿
BeanUtils錛孡ogging錛孌BCP錛孭ool鍜?Validator

鎵撳寘
Codec 鍜?Modeler

灝忕▼搴?br />CLI錛孌iscovery錛孡ang鍜?Collections


瑕佹敞鎰忕殑鏄繖涓垎綾誨彧鏄鏈枃鑰岃█錛屽湪Commons欏圭洰涓槸涓嶅瓨鍦ㄧ殑銆傚湪鏌愮紼嬪害涓婂垎綾繪槸閲嶅彔鐨勩傛湰鏂囧皢浠嬬粛Web鐩稿叧鍜屽皬紼嬪簭綾伙紝涓嬬瘒鏂囩珷鍖呮嫭XML鐩稿叧鍜屾墦鍖呯被錛屽伐鍏風被鍦ㄦ渶鍚庝竴綃囨枃绔犱腑銆?br />
灝忕▼搴忕被
灝咰LI錛孌iscovery錛孡ang鍜?Collections褰掑叆灝忕▼搴忕被鏄洜涓哄畠浠兘鏄負浜嗕竴涓皬鑰屽疄鐢ㄧ殑鐩殑緙栧啓鐨勩?br />
1.CLI

姒傝錛欳LI錛圕ommand Line Interface錛変負浣犵殑Java紼嬪簭鎻愪緵璇誨彇鍜岃В鏋愬懡浠よ鍙傛暟鐨勯氱敤鎺ュ彛銆?br />鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆?br />浣曟椂浣跨敤錛氶渶瑕佺粺涓鎿嶄綔鍛戒護琛屽弬鏁版椂銆?br />渚嬪瓙紼嬪簭錛欳LIDemo.java錛岄渶瑕佸皢commons-cli-1.0.jarcommons鍔犲叆CLASSPATH涓?br />鎻忚堪錛氶氬父鍦ㄥ畬鎴愪竴涓狫ava紼嬪簭鏃朵笉寰椾笉閲嶅啓搴旂敤紼嬪簭杈撳叆鍙傛暟鐨勫鐞嗛儴鍒嗐傚鏋滄湁涓涓敮涓鐨勬帴鍙g敤鏉ュ畾涔夛箲瑙f瀽鍜岃鍙栬緭鍏ュ弬鏁幫紝浠ュ喅瀹氱▼搴忕殑榪愯鏂瑰紡涓嶆槸寰堝ソ鍚楋紵CLI灝辨槸絳旀銆?br />瀵逛簬CLI錛屽懡浠よ涓瘡涓澶勭悊鐨勫弬鏁伴兘鏄竴涓狾ption銆傚垱寤轟竴涓狾ptions瀵硅薄錛屽皢Option瀵硅薄娣誨姞榪涘幓錛岀劧鍚庣敤CLI鎻愪緵鐨勫嚱鏁拌В鏋愮敤鎴風殑杈撳叆鍙傛暟銆備竴涓狾ption涔熻涔熼渶瑕佺敤鎴瘋緭鍏ヤ竴涓鹼紝渚嬪鏂囦歡鍚嶃傝繖鏃禣ption蹇呴』鍦ㄦ寚瀹氬鍒涘緩銆?br />CLI浣跨敤姝ラ濡備笅錛?br />1.鍒涘緩Options錛?br />Options options = new Options();
Options.addOption(鈥渢鈥?false,鈥漜urrent time鈥?;

2.鍒涘緩瑙f瀽鍣ㄨВ鏋愮敤鎴瘋緭鍏ワ細
CommandLineParser parser = new BasicParser();
CommandLine cmd;
try{
cmd = parser.parse(options, args);
} catch(ParseException pe) {
usage(options);
return;
}

3.鏍規嵁鐢ㄦ埛杈撳叆鎵ц鐩稿簲鎿嶄綔錛?br />
if(cmd.hasOption(鈥渘鈥?) {
System.err.println(鈥淣ice to meet you: 鈥? cmd.getOptionValue(鈥榥鈥?);
}

浠ヤ笂鍩烘湰灝辨槸浣跨敤CLI鐨勫叏榪囩▼銆傚綋鐒訛紝CLI鎻愪緵鍏朵粬楂樼駭閫夐」鐢ㄤ簬鎺у埗鍚勭鏍煎紡鍜岃В鏋愬櫒錛屼絾鍩烘湰鎿嶄綔鏄浉鍚岀殑銆傚畬鏁寸殑渚嬪瓙鍙互鐪媎emo銆?br />
2.Discovery

姒傝錛歞iscovery妯″紡鐨勫疄鐜幫紝鎻愪緵瀹氫綅涓庡疄渚嬪寲綾繪垨鍏朵粬璧勬簮鐨勯氱敤鏂規硶銆?br />鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆傝鍖呭浜巔re-release鐘舵併?br />浣曟椂浣跨敤錛氶渶瑕佸揩閫熸壘鍒頒綘鐨勪唬鐮佷腑Java鎺ュ彛鐨勫疄鐜版椂銆?br />渚嬪瓙紼嬪簭錛欴iscoveryDemo.java錛孧yInterface.java錛孧yImpl1.java錛孧yImpl2.java錛?MyInterface銆傞渶瑕佸皢commons-discovery.jar鍜宑ommons-logging.jar娣誨埌CLASSPATH涓?br />
鎻忚堪錛欴iscovery鐨勭洰鐨勬槸浣跨敤鏈濂界殑綆楁硶寰楀埌鎺ュ彛鐨勬墍鏈夊疄鐜般傚綋鐢ㄦ埛鎯蟲壘鍒版墍鏈夌殑鎻愪緵鏌愪竴鏈嶅姟鐨勬彁渚涘晢鏃訛紝榪欏皢鐗瑰埆鏈夌敤銆?br />
鍋囪浣犲啓浜嗕竴涓拡瀵規煇涓闅鵑鐨勬帴鍙c傝繖涓帴鍙g殑鎵鏈夊疄鐜板皢浠ュ敮涓鐨勭紪鐮佹柟寮忚В鍐寵繖涓闅鵑銆傜湡姝g殑鐢ㄦ埛鍦ㄥ疄闄呰В鍐寵繖涓闅鵑鏃跺皢浼氭湁澶氱閫夋嫨銆備粬鎬庝箞鎵嶈兘鐭ラ亾鎺ュ彛鐨勯偅縐嶅疄鐜板湪浠栫殑緋葷粺涓槸鍙鐨勶紵

榪欏氨鏄疭ervice涓嶴ervice Provider緇撴瀯銆係ervice灝辨槸浣犲畾涔夌殑鎺ュ彛銆係ervice Providers鎻愪緵Service鐨勫疄鐜般傜敤鎴烽渶瑕侀夋嫨Service Providers銆侱iscovery緇勪歡鐢ㄥ縐嶆柟娉曟彁渚涘府鍔┿傛敞鎰廌iscovery涓嶄粎鐢ㄤ簬鍙戠幇瀹炵幇綾伙紝鑰屼笖鍙互瀵繪壘璧勬簮錛屼緥濡傚浘鍍忔垨鍏朵粬鏂囦歡銆傚畠閬電収Sun鐨凷ervice Provider Architecture瑙勮寖銆?br />
鍚屾牱錛孌iscovery鐨勪嬌鐢ㄤ篃寰堢畝鍗曘備緥瀛愮▼搴忎腑錛孧yImpl1鍜孧yImpl2鏄疢yInterface鎺ュ彛鐨勫疄鐜般侻yInterface鏂囦歡蹇呴』鍦∕ETA-INF/services鐩綍涓嬨傛敞鎰忚繖涓枃浠跺繀欏誨搴旀帴鍙g殑鍏ㄨ礬寰勩傚鏋滄帴鍙e湪鍖呭唴錛岄偅涔堟枃浠跺悕涔熻鐩稿簲鏀瑰姩銆?br />
1錛庡彇寰桟lassLoader錛?br />
ClassLoaders loaders =

ClassLoaders.getAppLoaders(MyInterface.class, getClass(), false);

2錛庡垱寤篋iscoverClass鐢ㄤ簬鏌ユ壘瀹炵幇綾伙細

DiscoverClass discover = new DiscoverClass(loaders);

3錛庢煡鎵懼疄鐜扮被錛?br />
Class implClass = discover.find(MyInterface.class);

System.err.println("Implementing Provider: " + implClass.getName());

榪愯浠ヤ笂浠g爜錛圖iscoveryDemo.java錛夊皢寰楀埌MyInterface鏂囦歡涓敞鍐岀殑綾伙紝濡備笅鎵紺恒傚啀嬈℃彁閱掞紝濡傛灉瀹炵幇鍖呭惈鍦ㄤ竴涓寘緇撴瀯鍐咃紝鏂囦歡鍚嶅繀欏誨仛鐩稿簲鐨勪慨鏀廣傚鏋滆繖涓枃浠朵笉鍦ㄨ瀹氱洰褰曚笅錛屾垨瀹炵幇綾諱笉鑳藉疄渚嬪寲鎴栧畾浣嶏紝灝嗘姏鍑篋iscoveryException寮傚父錛岃〃鏄庢壘涓嶅埌MyInterface鐨勫疄鐜般?br />
MyImpl2 # Implementation 2

褰撶劧錛岃繖涓嶆槸娉ㄥ唽瀹炵幇鐨勫敮涓鏂規硶錛屽惁鍒橠iscovery榪樻湁浠涔堢敤錛佷簨瀹炰笂錛岃繖鏄疍iscovery鍙戠幇綾葷殑鍐呴儴鏈哄埗鐨勬渶鍚庝竴姝ャ傚叾浠栨柟娉曞寘鎷湪緋葷粺灞炴ф垨鐢ㄦ埛灞炴т腑瀹氫箟瀹炵幇綾葷殑鍚嶅瓧銆備緥濡傦紝鍒犻櫎META-INF/services鐩綍涓嬬殑鏂囦歡錛屾寜浠ヤ笅杈撳叆榪愯demo錛岀粨鏋滅浉鍚屻傝繖閲岀郴緇熷睘鎬ф槸鎺ュ彛鍚嶏紝鑰屽兼槸鎺ュ彛瀹炵幇鎻愪緵鑰呫?br />
java -DMyInterface=MyImpl1 DiscoveryDemo

Discovery涔熷彲鐢ㄤ簬鍒涘緩錛堝崟渚嬶級鏈嶅姟鎻愪緵鑰呯殑瀹炰緥騫惰皟鐢ㄥ畠浠殑鍑芥暟銆傚涓嬶細

((MyInterface)discover.newInstance(MyInterface.class)).myMethod();

娉ㄦ剰姝ゆ椂鎴戜滑騫朵笉鐭ラ亾閭d釜鏈嶅姟鎻愪緵鑰呭疄鐜癿yMethod鍑芥暟錛屾垜浠篃涓嶅叧蹇冦傝繖涓嚱鏁扮殑瀹炵幇鍙栧喅浜庝互浣曠鏂瑰紡榪愯浠ヤ笂浠g爜浠ュ強娉ㄥ唽鐨勬湇鍔℃彁渚涜呫?br />
3.Lang

姒傝錛歫ava.lang鍖呯殑鎵╁睍錛屽鍔犺澶氬String鐨勬搷浣溿傛彁渚涚被C璇█鐨勬灇涓俱?br />
鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆傝繖閲屼粙緇嶇殑鏄疞ang1.0錛岀炕璇戞湰鏂囨椂Lang2.0宸茬粡鍙戝竷銆?br />
浣曟椂浣跨敤錛氬綋瀵筳ava.lang鎻愪緵鐨勯粯璁ゅ疄鐜版劅鍒板帉鐑︼紝鎯蟲洿濂界殑鎺у埗String鐨勬搷浣滐紝鏁板煎嚱鏁頒互鍙婄郴緇熷睘鎬ф椂錛岃繕鏈夛紝鎯充嬌鐢–璇█椋庢牸鐨勬灇涓炬椂銆?br />
渚嬪瓙紼嬪簭錛歀angDemo.java, Mortgage.java, OnTV.java銆傞渶瑕佸皢commons-lang.jar鍔犲叆CLASSPATH涓?br />
鎻忚堪錛氳繖涓寘涓彁渚涚殑寰堝宸ュ叿鍑芥暟鍙互綆鍖朖ava紼嬪簭鍛樼殑宸ヤ綔銆傝繖浜涘嚱鏁板彲浠ュ噺灝戝疄鐜版棩甯稿姛鑳界殑緙栫▼閲忋傜壒鍒槸StringUtils綾伙紝瀹冩彁渚涙瘮鏍囧噯鐨刯ava.lang.String鍖呮洿寮虹殑鎿嶄綔瀛楃涓茬殑鍔熻兘銆傚畠浠殑浣跨敤鍗佸垎綆鍗曪紝鍙鐢ㄦ紜殑鍙傛暟璋冪敤涓涓潤鎬佸嚱鏁般備緥濡傦紝瑕佸皢涓鍙ヨ瘽鍙樹負浠ュぇ鍐欏紑澶村彧瑕侊細

StringUtils.capitalise("name");

榪欎釜鍑芥暟鐨勮緭鍑哄氨璞℃垜浠渶瑕佺殑鈥淣ame鈥濄傛祻瑙圫tringUtils API鐨勫叾浠栭潤鎬佸嚱鏁幫紝浣犲彲鑳戒細鍙戠幇瀵逛綘鏈夌敤鐨勩備緥瀛愮▼搴忎腑浣跨敤浜嗕竴浜涖?br />
鍙︿竴涓湁瓚g殑綾繪槸RandomStringUtils銆傝繖涓被涓殑鍑芥暟浜х敓闅忔満瀛楃涓詫紝榪欏湪鐢熸垚闅忔満瀵嗙爜鏃跺緢鏈夌敤銆?br />
綾籒umberUtils鎻愪緵鏁版嵁鎿嶄綔鐨勫嚱鏁幫紝鍖呮嫭鏈澶ф渶灝忓煎嚱鏁幫紝浠ュ強灝嗗瓧絎︿覆杞崲涓烘暟瀛楃殑鍑芥暟銆侼umberRange鍜孋harRange鍒嗗埆澶勭悊鏁板瓧涓庡瓧絎︾殑鑼冨洿銆?br />
Builder鍖呬腑鐨勭被鎻愪緵涓虹被娣誨姞toString錛宧ashCode錛宑ompareTo鍜宔quals鍑芥暟鐨勫姛鑳姐備篃灝辨槸璇達紝鑷繁涓嶉渶緙栫爜灝卞彲浠ュ湪綾諱腑娣誨姞楂樿川閲忕殑toString錛宧ashCode錛宑ompareTo鍜宔quals鍑芥暟錛屽彧瑕佷嬌鐢˙uilder鍖呬腑鐨勫嚱鏁板氨鍙互浜嗐備緥濡傦紝鐢═oStringBuilder鍑芥暟緇欑被娣誨姞toString鏂規硶錛?br />
public class Mortgage {
private float rate;
private int years;
....
public String toString() {
return new ToStringBuilder(this).append("rate", this.rate)
.append("years", this.years). toString();
}
}
涓轟粈涔堜嬌鐢ㄨ繖涓嚱鏁伴偅錛熷洜涓哄畠浣跨敤閫氱敤鐨勬柟娉曞鐞嗘墍鏈夌殑鏁版嵁綾誨瀷錛屾伆褰撶殑榪斿洖null錛屽悓鏃跺彲浠ユ帶鍒跺璞″拰鑱氶泦鐨勭粏鑺傚眰嬈°傝繖瀵逛簬鎵鏈塨uilder涓殑鍑芥暟鏈夋晥錛岃屼笖璇硶鍚屼笂鎵紺虹浉榪戙?br />
浣滀負涓涓狫ava紼嬪簭鍛橈紝濡傛灉浣犳蹇礐璇█椋庢牸鐨勬灇涓撅紝閭d箞榪欎釜鍖呬腑鐨勭被鍨嬪畨鍏ㄧ殑Enum鏁版嵁綾誨瀷灝嗗~琛ヨ繖涓絀虹櫧銆侲num綾繪槸鎶借薄綾伙紝鎵浠ヨ鍒涘緩鑷繁鐨勬灇涓撅紝蹇呴』鎵╁睍榪欎釜綾匯傚涓嬩緥鎵紺猴細

1錛庡畾涔夊茍鎵╁睍鏋氫婦綾伙細

import org.apache.commons.lang.enum.Enum;

import java.util.Map;

import java.util.List;

import java.util.Iterator;



public final class OnTV extends Enum {



public static final OnTV IDOL = new OnTV("Idol");

public static final OnTV SURVIVOR = new OnTV("Survivor");

public static final OnTV SEINFELD = new OnTV("Seinfeld");



private OnTV(String show) {

super(show);

}



public static OnTV getEnum(String show){

return (OnTV) getEnum(OnTV.class, show);

}



public static Map getEnumMap() {

return getEnumMap(OnTV.class);

}



public static List getEnumList() {

return getEnumList(OnTV.class);

}



public static Iterator iterator() {

return iterator(OnTV.class);

}

}

2錛庣幇鍦ㄥ氨鍙互鍦ㄤ綘鐨勬柟娉曚腑浣跨敤鏋氫婦浜嗭細

OnTV.getEnum("Idol");

璇ヨ浠g爜浠庢垜浠垱寤虹殑鏋氫婦鏁版嵁綾誨瀷涓繑鍥濱dol欏廣侲num綾昏繕鏈夊叾浠栨湁鐢ㄧ殑鍑芥暟銆?br />
4.Collections

姒傝錛氬Java Collection妗嗘灦鐨勬墿灞曪紝鍔犲叆浜嗘柊鐨勬暟鎹粨鏋勶紝iterators鍜屾瘮杈冨櫒銆?br />
鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆?br />
浣曟椂浣跨敤錛氬己鐑堝緩璁湪闇瑕佸鐞嗘暟鎹粨鏋勭殑Java欏圭洰灝藉彲鑳戒嬌鐢–ollections API錛屼粠涓綘浼氳幏寰楁瘮Java榛樿瀹炵幇澶х殑澶氱殑濂藉銆?br />
渚嬪瓙紼嬪簭錛欳ollectionsDemo.java銆傞渶瑕佸皢commons-collections.jar鍔犲叆CLASSPATH涓?br />
鎻忚堪錛欳ollections API涓湁寰堝綾伙紝寰堥毦鍦ㄤ竴鑺備腑鍏ㄤ粙緇嶅嚭鏉ャ傛墍浠ヨ繖閲屾垜鐫閲嶄粙緇嶆渶閲嶈鐨勭被錛屽笇鏈涗綘鑳芥劅鍏磋叮鍘諱粩緇嗙爺絀跺叾浠栫被銆侫PI闄勫甫鐨勬枃妗e姣忎釜綾婚兘鏈夎緇嗙殑鎻忚堪銆?br />
Bag鎺ュ彛鎵╁睍浜咼ava Collections錛屽姞鍏ヤ簡瀵規墍鏈夋垚鍛樼殑璁℃暟錛屽畠鍦ㄨ緇熻榪涘叆榪涘嚭鍏冪礌鏁版椂寰堟湁鐢ㄣ傚洜涓築ag鏄竴涓帴鍙o紝鎵浠ュ疄闄呬嬌鐢ㄧ殑鏄畠鐨勫疄鐜扮被錛屽HashBag鎴朤reeBag銆傞【鍚嶆濅箟錛孒ashBag鏄熀浜嶩ashMap鐨凚ag鐨勫疄鐜幫紝鑰孴reebag鏄熀浜嶵reeMap鐨勩侭ag鎺ュ彛涓殑涓や釜閲嶈鏂規硶鏄痝etCount錛圤bject o錛夊拰uniqueSet()銆傚墠鑰呰繑鍥濨ag涓煇鐗規畩鍏冪礌鐨勪釜鏁幫紝鍚庤呰繑鍥濨ag涓殑鍞竴鍏冪礌錛堣瘧鑰呯悊瑙d負錛氬厓绱犵被鍨嬶紝鍘熸枃錛歵he unique elements錛夌殑闆嗗悎銆?br />
Buffer鎺ュ彛鍏佽鎸夌収棰勫畾欏哄簭浠庤仛闆嗕腑鍒犻櫎瀵硅薄錛屽彲浠ユ槸鍚庤繘鍏堝嚭錛屽厛榪涘厛鍑猴紝鎴栬嚜瀹氫箟鐨勯『搴忋備笅闈㈢殑渚嬪瓙婕旂ず浜嗗浣曚互鑷劧鎺掑簭鐨勯『搴忓垹闄ゅ厓绱犵殑錛?br />
1錛嶣inaryHeap綾誨疄鐜癇uffer鎺ュ彛錛屽茍鎸夎嚜鐒舵帓搴忓垹闄ゅ厓绱犮傝嫢鎯充互鍙嶈嚜鐒舵帓搴忓垹闄わ紝浠alse涓哄弬鏁板嵆鍙細

BinaryHeap heap = new BinaryHeap();

2錛庢坊鍔犲厓绱狅細

heap.add(new Integer(-1));

heap.add(new Integer(-10));

heap.add(new Integer(0));

heap.add(new Integer(-3));

heap.add(new Integer(5));

3錛庤皟鐢╮emove鏂規硶銆傛寜鑷劧鎺掑簭錛岋紞10灝嗚鍒犻櫎錛屽弽涔?琚垹闄わ細

heap.remove();

FastArrayList錒慒astHashMap鍜孎astTreeMap綾諱嬌鐢ㄤ袱縐嶆ā寮忔搷浣滅浉搴旂殑Collection綾匯傜涓縐嶄負鎱㈡ā寮忥紝鏄繖浜涚被鍒濆鍖栧悗鐨勯粯璁ゆā寮忋傚湪鎱㈡ā寮忎笅錛岃繖浜涚被鐨勭粨鏋勫彉鍖栨槸鍚屾鐨勩傚湪蹇ā寮忎笅錛屽榪欎簺綾葷殑璁塊棶琚涓烘槸鍙鐨勶紝鍥犳鏇村揩涓浜涳紝鑰屼笖涓嶅彂鐢熷悓姝ャ傚湪蹇ā寮忎笅瑕佹敼鍙樼被鐨勭粨鏋勶紝瑕佸厛鍏嬮殕璇ョ被錛屽湪鍏嬮殕綾諱笂淇敼錛岀劧鍚庤鐩栬綾匯傝繖浜涚被鍦ㄥ鏁拌闂負鍙鐨勫綰跨▼鐜涓崄鍒嗘湁鐢ㄣ?br />
Iterator鍖呮彁渚涗簡璁稿甯歌Java Collections鍖呬腑娌℃湁鐨勮仛闆嗗拰瀵硅薄鐨刬terator銆備緥瀛愮▼搴忎腑婕旂ず浜唅terator鏁扮粍鐨凙rrayIterator銆傝繖浜沬terator鍚屾櫘閫欽ava iterators鐨勭敤娉曠浉鍚屻?br />
鏈鍚庯紝comparator鍖呬腑鎻愪緵浜嗕竴浜涙湁鐢ㄧ殑姣旇緝鍣紝瀹冧滑鐢ㄦ潵瀹氫箟姣旇緝鍜屽喅瀹氬悓涓綾葷殑涓や釜瀵硅薄鐨勯『搴忋備緥濡傦紝鍦ㄦ垜浠墠闈㈡彁鍒扮殑Buffer涓紝鍙互瀹氫箟鑷繁姣旇緝鍣紝鐢ㄥ畠鏇夸唬鑷劧鎺掑簭鍐沖畾欏哄簭銆傚涓嬶細

1錛庤繖嬈′嬌鐢∟ullComparator鍒涘緩BinaryHeap銆侼ullComparator鏍規嵁鏍囧織nullAreHigh鐨勫煎喅瀹歯ull涓庡叾浠栧璞$殑澶у皬銆傚鏋滃彇鍊間負false錛岃〃紺簄ull姣斿叾浠栧璞″皬錛?br />
BinaryHeap heap2 = new BinaryHeap(new NullComparator(false));

2錛庢坊鍔犲璞★紝鍖呮嫭涓浜沶ull

heap2.add(null);

heap2.add(new Integer("6"));

heap2.add(new Integer("-6"));

heap2.add(null);

3錛庢渶鍚庯紝鎵ц鍒犻櫎鎿嶄綔銆傚洜涓簄ull灝忎簬鍏朵粬瀵硅薄錛孊ag鏈鍚庡墿涓嬬殑鏄痭ull

heap2.remove();

鍒拌繖閲岋紝灝忕▼搴忕被灝變粙緇嶅畬浜嗐傛洿澶氱殑緇嗚妭璇風湅API鏂囨。錛屾垨鑰呰繖浜涘寘鐨勬簮浠g爜銆?br />


Web鐩稿叧綾?br />
Web鐩稿叧綾諱腑緇勪歡甯姪Java紼嬪簭鍛樺畬鎴怶eb鐩稿叧鐨勪換鍔°?br />
1.FileUpload

姒傝錛氱幇鎴愮殑鏂囦歡涓婁紶緇勪歡銆?br />
鍦ㄩ偅寰楀埌錛氫富欏點?br />
浣曟椂浣跨敤錛氬綋Java鏈嶅姟鍣ㄧ幆澧冧腑闇瑕佺畝鍗曟槗鐢ㄥ茍涓旈珮鏁堢殑鏂囨。涓婁紶緇勪歡鏃躲?br />
渚嬪瓙紼嬪簭錛歠ileuploaddemo.jsp錛宖ileuploaddemo.htm錛宮sg.jsp銆傞渶瑕佸皢commons-fileupload-1.0-dev.jar娣誨姞鍒扮▼搴忕殑WEB-INF/lib鐩綍涓嬨?br />
鎻忚堪錛欶ileUpload瑙e喅浜嗘枃浠朵笂浼犳椂鏈嶅姟绔殑甯歌闂錛屾彁渚涗簡涓涓帶鍒舵枃浠朵笂浼犵殑鏄撶敤鐨勬帴鍙o紝鍙敤鍦↗SP欏靛拰servlet涓傚畠絎﹀悎RFC1867鍗忚鏍囧噯錛岃В鏋愯緭鍏ヨ姹傦紝騫跺皢涓婁紶鍒版湇鍔″櫒鐨勪竴緋誨垪鏂囦歡鐨勫垎鍧椾氦緇欏簲鐢ㄧ▼搴忋備笂浼犵殑鏂囦歡淇濆瓨鍦ㄥ唴瀛樹腑鎴栦復鏃剁洰褰曚腑錛堣繖鐢變竴涓〃紺烘枃浠跺ぇ灝忕殑鍙傛暟鍐沖畾錛屽鏋滀笂浼犵殑鏂囦歡澶у皬瓚呰繃璇ュ弬鏁板鹼紝鏂囦歡灝嗚鍐欏叆涓存椂鐩綍錛夈備綘涔熷彲浠ヨ緗叾浠栧弬鏁幫紝渚嬪鍙帴鏀剁殑鏂囦歡鐨勬渶澶у昂瀵鎬互鍙婁復鏃舵枃浠剁洰褰曘?br />
FileUpload鐨勪嬌鐢ㄥ垎涓哄嚑姝ワ紝鎴戝皢鐢ㄤ竴涓湪涓涓〉涓悓鏃朵笂浼犱袱涓笉鍚屾枃浠剁殑渚嬪瓙璇存槑銆?br />
1錛庡垱寤篐TML欏點傛敞鎰忎負浜嗙‘淇濅笂浼犳枃浠剁殑綾誨瀷鏄鍏佽鐨勶紝enctype鍙傛暟蹇呴』涓簃ultipart/form-data錛岃姹傚弬鏁癿ethod蹇呴』涓篜OST銆傝繕鏈変竴鐐硅娉ㄦ剰鐨勬槸璇ラ〉闈笉浣嗘湁涓や釜鏂囦歡鎺т歡榪樻湁涓涓櫘閫氭枃鏈帶浠躲?br />
<form name="myform" action="fileuploaddemo.jsp"

method="post" enctype="multipart/form-data">

Specify your name:<br />

<input type="text" name="name" size="15"/><br />

Specify your Image:<br />

<input type="file" name="myimage"><br/>

Specify your File:<br />

<input type="file" name="myfile"><br /><br />

<input type="submit" name="Submit" value="Submit your files"/>

</form>

2錛庡垱寤篔SP欏點?br />
a錛庢鏌ヨ緭鍏ヨ姹傛槸涓嶆槸澶氭鏁版嵁銆?br />
boolean isMultipart = FileUpload.isMultipartContent(request);

b錛庡垱寤鴻姹傚鐞嗗櫒錛岃В鏋愯姹傦紝緇撴灉瀛樹簬涓涓猯ist涓?br />
DiskFileUpload upload = new DiskFileUpload();

List items = upload.parseRequest(request);

c錛庨亶鍘嗚繖涓猯ist璁塊棶姣忎釜鍗曠嫭鐨勬枃浠墮」銆傜敤isFormField()鍑芥暟鍖哄垎涓婁紶鏂囦歡鍜屽父瑙勭被鍨嬪煙銆傛牴鎹渶瑕侊紝鍙互閫愬瓧鑺傜殑璇誨彇涓婁紶鐨勬枃浠訛紝鎴栬呬嬌鐢ㄨ緭鍏ユ祦銆?br />
Iterator itr = items.iterator();



while(itr.hasNext()) {

FileItem item = (FileItem) itr.next();



// check if the current item is a form field or an uploaded file

if(item.isFormField()) {



// get the name of the field

String fieldName = item.getFieldName();



// if it is name, we can set it in request to thank the user

if(fieldName.equals("name"))

request.setAttribute("msg", "Thank You: " + item.getString());



} else {



// the item must be an uploaded file save it to disk. Note that there

// seems to be a bug in item.getName() as it returns the full path on

// the client's machine for the uploaded file name, instead of the file

// name only. To overcome that, I have used a workaround using

// fullFile.getName().

File fullFile = new File(item.getName());

File savedFile = new File(getServletContext().getRealPath("/"),

fullFile.getName());

item.write(savedFile);

}

}

鍙互鍦ㄤ笂浼犲鐞嗗櫒涓敤upload.setSizeMax闄愬埗涓婁紶鏂囦歡鐨勬渶澶у昂瀵革紝褰撲笂浼犳枃浠跺ぇ灝忚秴榪囪灝哄灝嗕細鎶涘嚭寮傚父銆備笂渚嬩腑錛岃嫢灝嗚灝哄璁句負錛?錛屽氨鍙互涓婁紶浠諱綍澶у皬鐨勬枃浠躲?br />
榪欎釜渚嬪瓙榪樺彲浠ユ湁涓涓皬鍙樺寲銆傛兂涓婇潰鎻愬埌鐨勶紝鍙互浣跨敤杈撳叆嫻佷笂浼犳枃浠躲傝繃紼嬫槸灝嗕笂浼犵殑鍐呭椹葷暀鍦ㄥ唴瀛樹腑鐩村埌鏌愪竴闃堝鹼紝鍙栧緱鍐呭鐨勭被鍨嬶紝鎶婂畠浠瓨涓哄瓧絎︿覆鎴栧瓧鑺傛暟緇勶紝鏈鍚庝粠鍐呭瓨涓垹闄ゃ侳ileItem涓嚱鏁板畬鎴愪簡璇ヨ繃紼嬶紙DefaultFileItem鏄畠鐨勫疄鐜幫級銆?br />
2.HttpClient

姒傝錛氭墿灞昷ava.net鍖咃紝鎻愪緵綾諱技嫻忚鍣ㄧ殑鍔熻兘銆?br />
鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆傛簮浠g爜鍜岀▼搴忎負beta1鐗堛?br />
浣曟椂浣跨敤錛氬綋瑕佸疄鐜癢eb嫻忚鍣ㄦ椂錛屾垨浣犵殑紼嬪簭闇瑕佹湁鏁堢殑鎺у埗HTTP/HTTPS榪炴帴鏃躲?br />
渚嬪瓙紼嬪簭錛欻ttpClientDemo.java銆傞渶瑕佸皢commons-httpclient.jar鍜宑ommon-logging.jar鍔犲叆CLASSPATH涓紝JDK涓?.4鎴栨洿楂樼増鏈?br />
鎻忚堪錛欻ttpClient鏄痡ava.net鐨勬墿灞曠▼搴忓寘錛屽畠鎻愪緵璁稿鍑芥暟甯姪浣犲垱寤哄熀浜嶩TTP鍗忚鐨勫悇縐嶅垎甯冨紡搴旂敤鎴栬呭祵鍏ュ簲鐢ㄧ▼搴忓鐞咹TTP鎿嶄綔銆傝繖涓簱鎻愪緵姣擟ommons鐨勫叾浠栧寘鏇磋緇嗙殑鏂囨。錛屽茍闄勫甫寰堝渚嬪瓙銆傝繖閲屽皢璁茶В鎬庢牱寮鍙戜竴涓彁鍙朩eb緗戦〉鐨勭▼搴忋侶ttpClient闄勫甫鐨勬枃妗d腑鏈変竴涓被浼肩殑渚嬪瓙錛屾垜灝嗘墿灞曞畠浣垮畠鏀寔SSL銆傛敞鎰忚繖涓緥瀛愬繀欏昏繍琛屼簬JDK 1.4鎴栨洿楂樼増鏈笂錛屽洜涓哄畠闇瑕丣DK1.4涓殑Java Secure Socket Connection搴撱?br />
1錛庢壘涓涓彲浠ラ氳繃HTTPS涓嬭澆鐨勭綉欏碉紝渚嬪https://www.paypal.com/銆傜‘淇濇枃浠?JAVA_HOME%/jre/lib/security/java.security鏈夌被浼煎涓嬬殑涓琛岋細

security.provider.2=com.sun.net.ssl.internal.ssl.Provider

榪欐牱錛岃嚦灝戝湪浣犵殑紼嬪簭涓鐞咹TTPS榪炴帴鐨勬柟寮忔槸娌℃湁鍖哄埆鐨勩傚鏋滆繙绔殑绔欑偣闇瑕侀獙璇侊紝閭d箞浣犲繀欏誨仛鐩稿簲鐨勯厤緗?br />
2錛庡垱寤篐ttpClient綾葷殑涓涓疄渚嬶紝鎵鏈夌殑鍑芥暟閮藉皢鐢ㄥ埌瀹冦傝繖涓被鍖呭惈涓涓繛鎺ョ鐞嗗櫒鎿嶄綔瀹為檯鐨勮繛鎺ャ侶ttpConnectionManager鎺ュ彛鍏佽浣犲垱寤鴻嚜宸辯殑綆$悊鍣紝鍚﹀垯鍙互浣跨敤鍐呭緩鐨凷impleHttpConnectionManager鎴朚ultiThreadedHttpConnectionManager銆傚鏋滄棤鍙傛暟鍒涘緩HttpClient錛岄偅涔堥粯璁よ繛鎺ョ鐞嗗櫒涓篠impleHttpConnectionManager銆?br />
HttpClient client = new HttpClient();

3錛庡垱寤轟竴涓猰ethod瀹炰緥錛岀敤鏉ュ畾涔変嬌鐢ㄩ偅縐岺TTP鏂規硶涓庤繙绔珯鐐逛紶閫掍俊鎭紝鍙互閫夋嫨鐨勬柟娉曟湁GET, POST, PUT, DELETE, HEAD, OPTIONS鍜孴RACE銆傝繖浜沵ethod綾繪槸HttpMethod鎺ュ彛鐨勪笉鍚屽疄鐜般傚湪榪欎釜渚嬪瓙涓嬌鐢℅etMethod錛屽垱寤烘椂灝嗚GET鐨刄RL浣滀負鍙傛暟銆?br />
HttpMethod method = new GetMethod(url);

4錛庤繛鎺ヨ繖涓猆RL錛屼篃灝辨槸鐢ㄥ垰鎵嶅畾涔夌殑鏂規硶榪炴帴URL銆傝繖涓柟娉曞皢榪斿洖server榪斿洖鐨勭姸鎬佺爜銆傛敞鎰廵xecuteMethod鏄痗lient鐨勫嚱鏁拌屼笉鏄痬ethod鐨勩?br />
statusCode = client.executeMethod(method);

5錛庤鍙栨湇鍔″櫒鐨勮繑鍥炪傚鏋滆繛鎺ュけ璐ワ紝灝嗘姏鍑篐ttpException鎴朓OException寮傚父銆侷OException寮傚父璇存槑鏄綉緇滃嚭浜嗛棶棰橈紝閲嶈瘯涔熶笉浼氭垚鍔熴傝繑鍥炲煎彲浠ュ瓧鑺傛暟緇勶箲杈撳叆嫻佹垨瀛楃涓茬殑鏍煎紡璇誨彇銆傝繖鏍鳳紝灝卞彲浠ラ殢鎰忓鐞嗚緭鍏ヤ簡銆?br />
byte[] responseBody = method.getResponseBody();

6錛庢渶鍚庯紝閲婃斁榪炴帴錛屼嬌涔嬪湪闇瑕佹椂鍙噸鐢ㄣ?br />
method.releaseConnection();

榪欐椂涓涓叧浜嶩ttpClient搴撶殑寰堢矖鐣ョ殑浠嬬粛錛屽畠榪樻湁寰堝鍔熻兘錛屽崄鍒嗗仴澹?br />
3.Net

姒傝錛氬熀鏈琁nternet鍗忚鐨勫簳灞侫PI銆?br />
鍦ㄩ偅寰楀埌錛氫富欏碉紝紼嬪簭錛屾簮浠g爜銆?br />
浣曟椂浣跨敤錛氬綋鍦↗ava搴旂敤紼嬪簭涓渶瑕両nternet鍗忚鐨勫簳灞備簰榪炴椂銆?br />
渚嬪瓙紼嬪簭錛歂etDemo.java銆傞渶瑕佸皢commons-net-1.0.0.jar鍔犲叆CLASSPATH涓?br />
鎻忚堪錛歂et鍖呮槸寰堝鍋ュ.鐨勫拰涓撲笟鐨勭被鐨勯泦鍚堛傝繖浜涚被鏉ヨ嚜浜庝竴涓彨鍋歂etComponents鐨勫晢涓氫駭鍝佺殑涓閮ㄥ垎銆?br />
Net鍖呬腑鐨勭被鏃㈡彁渚涘鍗忚鐨勫簳灞傝闂篃鏈夐珮灞傜殑鎶借薄銆傚湪澶у鏁版儏鍐典笅錛屾娊璞℃槸瓚沖鐨勶紝瀹冨彲浠ヤ嬌浣犱笉蹇呯紪鍐欒В鏋愬悇縐嶅崗璁殑搴曞眰濂楁帴瀛楃殑浠g爜銆備嬌鐢ㄦ娊璞′笉浼氭崯澶變換浣曞姛鑳姐?br />
SocketClient鏄墍鏈夊崗璁殑鍩虹被錛屽畠鏄竴涓娊璞$被鍖呭惈鎵鏈夊崗璁殑鍏卞悓鍔熻兘銆傚悇縐嶅崗璁殑浣跨敤鏂規硶鏄緢鐩歌繎鐨勶細棣栧厛浣跨敤connect鏂規硶寤虹珛涓庤繙绔湇鍔″櫒鐨勮繛鎺ワ紝鎵ц鏈嶅姟錛屾渶鍚庢柇寮榪炴帴銆傝鎴戜滑閫氳繃渚嬪瓙鏉ョ湅錛?br />
1錛庡垱寤轟竴涓猚lient銆傛垜浠皢浣跨敤涓涓狽NTPClient浠庢柊闂繪湇鍔″櫒涓婁笅杞芥柊闂葷粍鍒楄〃銆?br />
client = new NNTPClient();

2錛庤繛鎺ユ湇鍔″櫒錛屾垜鐢ㄧ殑鏄柊闂葷粍鍒楄〃杈冪煭鐨勬湇鍔″櫒銆?br />
client.connect("aurelia.deine.net");

3錛庢彁鍙栨柊闂葷粍鍒楄〃銆傚涓嬬殑鍛戒護榪斿洖NewsGroupInfo鏁扮粍銆傚鏋滄湇鍔″櫒涓婃病鏈夋柊闂葷粍鍒欐暟緇勪負絀猴紝鍑洪敊鍒欒繑鍥瀗ull銆傛敞鎰忓綋鏂伴椈緇勫垪琛ㄥ緢澶ф椂錛岃繖涓懡浠や細鑺卞緢闀挎椂闂淬傛瘡涓狽ewsGroupInfo瀵硅薄鍖呭惈鍏充簬鏂伴椈緇勭殑璇︾粏淇℃伅錛屾湁鍏敤鍑芥暟鍙互瑙f瀽瀹冧滑錛堝鏂囩珷鏁幫紝鏈鍚庡彂琛ㄧ殑鏂囩珷錛屽彂琛ㄦ潈闄愮瓑錛夈?br />
list = client.listNewsgroups();

4錛庢渶鍚庯紝鏂紑涓庢湇鍔″櫒鐨勮繛鎺ャ?br />
if (client.isConnected())

client.disconnect();

鍏朵綑鐨刢lient濡侳ingerClient, POP3Client, TelnetClient絳夌敤娉曠浉浼箋?br />
緇撴潫璇?br />
榪欑瘒鏂囩珷浠嬬粛浜哤eb鐩稿叧鍜屽皬紼嬪簭綾伙紝涓嬬瘒鏂囩珷鍖呮嫭XML鐩稿叧鍜屾墦鍖呯被錛屽伐鍏風被鍦ㄦ渶鍚庝竴綃囨枃绔犱腑銆?br />
甯屾湜浣犺兘浠庤繖綃囨枃绔犵殑渚嬪瓙寰楀埌鏀惰幏銆傛渶鍚庯紝鎴戝笇鏈涜繖綃囨枃绔犺兘澶熸縺璧蜂綘瀵笴ommons瀛愰」鐩殑鍏磋叮銆?img src ="http://www.tkk7.com/seaairland/aggbug/44375.html" width = "1" height = "1" />

chenhui 2006-05-02 15:36 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 美女视频黄是免费的网址| 91老湿机福利免费体验| 日韩中文字幕免费| 亚洲精品V天堂中文字幕| 成人A级毛片免费观看AV网站| 亚洲一区无码中文字幕乱码| 91麻豆最新在线人成免费观看| 亚洲国产综合精品| 毛片免费在线视频| 亚洲AV无码国产精品永久一区| 国产特级淫片免费看| 猫咪免费人成在线网站| 曰韩亚洲av人人夜夜澡人人爽| 中文字幕免费在线看电影大全| 亚洲人成色7777在线观看| 秋霞人成在线观看免费视频| 久久丫精品国产亚洲av| 日韩版码免费福利视频| 国产精品亚洲а∨无码播放麻豆| 亚洲av无码专区在线观看素人| 国产大片免费天天看| 久久综合图区亚洲综合图区| 国产妇乱子伦视频免费| 国产成人亚洲精品91专区高清| 亚洲综合色成在线播放| 99热在线精品免费播放6| 亚洲一区精彩视频| 一区二区三区亚洲视频| 成全视频高清免费观看电视剧| 亚洲毛片基地日韩毛片基地| 免费观看的毛片手机视频| 一区二区三区在线免费| 中文字幕亚洲免费无线观看日本 | 国产一区二区三区在线免费| 国产高清对白在线观看免费91| 亚洲黑人嫩小videos| 成人黄软件网18免费下载成人黄18免费视频 | yy6080亚洲一级理论| 桃子视频在线观看高清免费视频| 亚洲人成网站看在线播放| 亚洲情a成黄在线观看|