锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲美女精品久久久久狼,亚洲乱码av中文一区二区,亚洲精品午夜国产VA久久成人 http://www.tkk7.com/absolutedo/category/36438.html鑽鍐?" 涓嶇煡鍒欓棶錛屼笉鑳藉垯瀛︼紝铏借兘涓嶈錛岀劧鍚庝負寰楓傞椈涔嬩笉瑙侊紝铏藉崥蹇呰艾錛涜涔嬭屼笉鐭ワ紝铏借瘑涓嶅錛涚煡涔嬭屼笉琛岋紝铏芥暒蹇呭洶銆? zh-cnFri, 21 Aug 2009 23:08:00 GMTFri, 21 Aug 2009 23:08:00 GMT60String鍜孲tringBuffer鐨勫尯鍒玔杞琞 http://www.tkk7.com/absolutedo/archive/2009/08/17/291427.htmlabsolutejabsolutejMon, 17 Aug 2009 01:53:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/08/17/291427.htmlhttp://www.tkk7.com/absolutedo/comments/291427.htmlhttp://www.tkk7.com/absolutedo/archive/2009/08/17/291427.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/291427.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/291427.html 浠庡璞″疄鐜頒笂鏉ヨ錛岄兘鏄氳繃char[]鏉ュ疄鐜扮殑銆?br /> 濡傛灉new String(),閭d箞鏁扮粍鐨勯暱搴︿負0錛屽鏋渘ew String("String")錛岄偅涔坈har[]鏁扮粍鐨勯暱搴﹀氨鏄綘鍒涘緩鐨勫瓧絎︿覆鐨勯暱搴︺?br /> 榪欎釜char[]鍦ㄥ瓧絎︿覆鍒涘緩浠ュ悗鏄笉浼氭敼鍙樼殑銆?br /> 濡傛灉浣犲彧瀵硅繖涓覆鏈韓榪涜鏌ユ壘絳夊瀛楃涓叉棤鏀瑰彉鐨勬搷浣滅殑璇濓紝瀵逛簬姝ゆ暟緇勬湰韜槸娌℃湁褰卞搷鐨勩備絾鏄鏋滐紝浣犺鎵ц鐨勬槸涓涓姝ゅ瓧絎︿覆鏈韓鏈夋敼鍙樼殑鎿嶄綔鐨勮瘽錛岄偅涔堬紝鏄笉鍙互鐨勩?br /> 浣嗘槸Strin瀵硅薄涓烘垜浠彁渚涗簡姝ょ被鎿嶄綔鐨勬柟娉曪紝姣斿concat()鏂規硶錛屾簮浠g爜濡備笅錛?br />     public String concat(String s) {
        int i = s.length();
        if (i == 0) {
            return this;
        } else {
            char ac[] = new char[count + i];
            getChars(0, count, ac, 0);
            s.getChars(0, i, ac, count);
            return new String(0, count + i, ac);
        }
    }
鐢辨錛屾垜浠彲浠ョ煡閬擄紝鍏跺疄錛屾鏂規硶緇欐垜浠繑鍥炵殑宸茬粡涓嶆槸褰撳墠鐨勫瓧絎︿覆浜嗭紝鑰屾槸鍙堝垱寤轟簡涓涓柊鐨勫瓧絎︿覆錛岀劧鍚庤繑鍥炪?br /> 鍏朵粬鐨勬柟娉曚篃綾諱技銆?br />
StringBuffer鐨勫疄鐜幫紝涔熸槸閫氳繃char[]鏉ュ疄鐜扮殑銆備絾鏄紝榛樿鐨勬儏鍐典笅錛屽叾鑷繁鍒涘緩浜嗕竴涓紦瀛樻暟緇勶紝闀垮害鏄?6錛岃繖涓鐐癸紝鎴戜滑鍙互閫氳繃StringBuffer鐨勬瀯閫犲櫒鏉ョ煡閬擄細
    public StringBuffer() {
    super(16);
    }
榪欎釜鏂規硶鍒濆鍖栦簡錛宑har[]鏁扮粍鐨勯暱搴︽槸16銆?br /> 鍏剁埗綾繪瀯閫犲櫒濡備笅錛?br />     AbstractStringBuilder(int capacity) {
        value = new char[capacity];
    }
涔熷氨鏄錛岄粯璁ょ殑鏁扮粍闀垮害鏄?6銆?br /> 寰堝鐨勬椂鍊欙紝瀹歸噺16瀵逛簬鎴戜滑闇瑕佺殑涓叉潵璇達紝鍙兘榪滆繙涓嶅銆傛庝箞鍔炲憿錛?br /> 鍦ㄨ繘琛屼覆鐨刟ppend鐨勬椂鍊欙紝StringBuffer浼氭嫻嬪墿浣欏閲忥紝騫朵細閲嶆柊鎵╁厖鑷沖綋鍓嶅閲忕殑2鍊嶃?br />     public AbstractStringBuilder append(String str) {
    if (str == null) str = "null";
        int len = str.length();
    if (len == 0) return this;
    int newCount = count + len;
    if (newCount > value.length)
        expandCapacity(newCount);
    str.getChars(0, len, value, count);
    count = newCount;
    return this;
    }

鑰屾墿瀹圭殑鍚屾椂錛屼細鍒涘緩涓涓柊鐨勬暟緇勶紝騫跺皢鍘熸潵鐨勬暟緇勫唴瀹瑰鍒跺埌鏂扮殑鏁扮粍閲岄潰銆?br /> 鐢辨鍙錛屽鏋滃閲忎笉瓚崇殑璇濓紝閭d箞姣忎竴嬈℃墿瀹癸紝閮戒細鑰楁帀澶ч噺鐨勮祫婧愶紝灝界錛屼綘鍙兘鎵╁厖鐨勫閲忎篃寰堝皬銆傚鏋滐紝鏁扮粍鐨勯暱搴﹀緢澶э紝鑰楁帀鐨勮祫婧愬氨浼氭洿澶氥?br /> 鎵浠ワ紝鎴戜滑鍦ㄤ嬌鐢╯tringbuffer鐨勬椂鍊欙紝瑕佷竴嬈″湪鍒涘緩瀵硅薄鐨勬椂鍊欑粰涓庤凍澶熷鐨勭┖闂達紝榪欐牱浼氭彁楂樻ц兘銆?br /> 鏈夊埄蹇呮湁寮婏紝榪欎釜鎬ц兘鏄互絀洪棿涓轟唬浠楓備絾鏄浉瀵逛簬鎬ц兘鐨勪撫澶辨潵璇達紝搴旇榪樻槸鍊煎緱鐨勩?br />
濡傛灉涓嶉渶瑕佹墿瀹圭殑璇濓紝閭d箞鎵鏈夌殑鎿嶄綔閮芥槸鍩轟簬鍚屼竴涓暟緇勶紝閭d箞鍍忓浜巗tring鐨勬搷浣滄潵璇達紝涓嶉渶瑕佹瘡涓嬈¢兘鍒涘緩瀵硅薄浜嗭紝鐪佸幓浜嗗垱寤哄璞$殑鏃墮棿錛屾ц兘鏄濂藉緢澶氱殑錛屽悓鏃訛紝String鐨勪覆鎿嶄綔錛屼細鐢ㄥ幓寰堝鐨勭┖闂達紝瀵逛簬铏氭嫙鏈烘潵璇達紝涔熷鍔犱簡寰堝ぇ鐨勫帇鍔涖?br />


杞嚦:http://www.tkk7.com/zhyiwww/archive/2008/04/25/195993.html

absolutej 2009-08-17 09:53 鍙戣〃璇勮
]]>
Servlet榪囨護鍣ㄥぇ鍏╗杞琞http://www.tkk7.com/absolutedo/archive/2009/08/17/291425.htmlabsolutejabsolutejMon, 17 Aug 2009 01:50:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/08/17/291425.htmlhttp://www.tkk7.com/absolutedo/comments/291425.htmlhttp://www.tkk7.com/absolutedo/archive/2009/08/17/291425.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/291425.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/291425.html闃呰鍏ㄦ枃

absolutej 2009-08-17 09:50 鍙戣〃璇勮
]]>
log4j閰嶇疆璇﹁В[杞琞http://www.tkk7.com/absolutedo/archive/2009/08/17/291419.htmlabsolutejabsolutejMon, 17 Aug 2009 01:45:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/08/17/291419.htmlhttp://www.tkk7.com/absolutedo/comments/291419.htmlhttp://www.tkk7.com/absolutedo/archive/2009/08/17/291419.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/291419.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/291419.htmllog4j璇﹁В
        鏍規嵁緗戠粶璧勬枡鏁寸悊       
>>>>1. 姒傝堪<<<<
銆銆1.1. 鑳屾櫙
銆銆
銆銆鍦ㄥ簲鐢ㄧ▼搴忎腑娣誨姞鏃ュ織璁板綍鎬葷殑鏉ヨ鍩轟簬涓変釜鐩殑錛氱洃瑙嗕唬鐮佷腑鍙橀噺鐨勫彉鍖栨儏鍐碉紝鍛ㄦ湡鎬х殑璁板綍鍒版枃浠朵腑渚涘叾浠栧簲鐢ㄨ繘琛岀粺璁″垎鏋愬伐浣滐紱璺熻釜浠g爜榪愯鏃惰建榪癸紝浣滀負鏃ュ悗瀹¤鐨勪緷鎹紱鎷呭綋闆嗘垚寮鍙戠幆澧冧腑鐨勮皟璇曞櫒鐨勪綔鐢紝鍚戞枃浠舵垨鎺у埗鍙版墦鍗頒唬鐮佺殑璋冭瘯淇℃伅銆?br /> 銆銆
銆銆鏈鏅氱殑鍋氭硶灝辨槸鍦ㄤ唬鐮佷腑宓屽叆璁稿鐨勬墦鍗拌鍙ワ紝榪欎簺鎵撳嵃璇彞鍙互杈撳嚭鍒版帶鍒跺彴鎴栨枃浠朵腑錛屾瘮杈冨ソ鐨勫仛娉曞氨鏄瀯閫犱竴涓棩蹇楁搷浣滅被鏉ュ皝瑁呮綾繪搷浣滐紝鑰屼笉鏄涓緋誨垪鐨勬墦鍗拌鍙ュ厖鏂ヤ簡浠g爜鐨勪富浣撱?br /> 銆銆
銆銆1.2. Log4j綆浠?br /> 銆銆
銆銆鍦ㄥ己璋冨彲閲嶇敤緇勪歡寮鍙戠殑浠婂ぉ錛岄櫎浜嗚嚜宸變粠澶村埌灝懼紑鍙戜竴涓彲閲嶇敤鐨勬棩蹇楁搷浣滅被澶栵紝Apache涓烘垜浠彁渚涗簡涓涓己鏈夊姏鐨勬棩蹇楁搷浣滃寘-Log4j銆?br /> 銆銆
銆 銆Log4j鏄疉pache鐨勪竴涓紑鏀炬簮浠g爜欏圭洰錛岄氳繃浣跨敤Log4j錛屾垜浠彲浠ユ帶鍒舵棩蹇椾俊鎭緭閫佺殑鐩殑鍦版槸鎺у埗鍙般佹枃浠躲丟UI緇勪歡銆佺敋鑷蟲槸濂楁帴鍙f湇鍔?鍣ㄣ丯T鐨勪簨浠惰褰曞櫒銆乁NIX Syslog瀹堟姢榪涚▼絳夛紱鎴戜滑涔熷彲浠ユ帶鍒舵瘡涓鏉℃棩蹇楃殑杈撳嚭鏍煎紡錛涢氳繃瀹氫箟姣忎竴鏉℃棩蹇椾俊鎭殑綰у埆錛屾垜浠兘澶熸洿鍔犵粏鑷村湴鎺у埗鏃ュ織鐨勭敓鎴愯繃紼嬨傛渶浠や漢鎰熷叴瓚g殑灝?鏄紝榪欎簺鍙互閫氳繃涓涓厤緗枃浠舵潵鐏墊椿鍦拌繘琛岄厤緗紝鑰屼笉闇瑕佷慨鏀瑰簲鐢ㄧ殑浠g爜銆?br /> 銆銆
銆銆姝ゅ錛岄氳繃Log4j鍏朵粬璇█鎺ュ彛錛屾偍鍙互鍦–銆丆+ +銆?Net銆丳L/SQL紼嬪簭涓嬌鐢↙og4j錛屽叾璇硶鍜岀敤娉曚笌鍦↗ava紼嬪簭涓竴鏍鳳紝浣垮緱澶氳璦鍒嗗竷寮忕郴緇熷緱鍒頒竴涓粺涓涓鑷寸殑鏃ュ織緇勪歡妯″潡銆傝屼笖錛岄?榪囦嬌鐢ㄥ悇縐嶇涓夋柟鎵╁睍錛屾偍鍙互寰堟柟渚垮湴灝哃og4j闆嗘垚鍒癑2EE銆丣INI鐢氳嚦鏄疭NMP搴旂敤涓?br /> 銆銆
銆銆鏈枃浠嬬粛鐨凩og4j鐗堟湰鏄?1.2.3銆備綔鑰呰瘯鍥鵑氳繃涓涓畝鍗曠殑瀹㈡埛/鏈嶅姟鍣↗ava紼嬪簭渚嬪瓙瀵規瘮浣跨敤涓庝笉浣跨敤Log4j 1.2.3鐨勫樊鍒紝騫惰緇嗚瑙d簡鍦ㄥ疄璺典腑鏈甯鎬嬌鐢↙og4j鐨勬柟娉曞拰姝ラ銆傚湪寮鴻皟鍙噸鐢ㄧ粍浠跺紑鍙戠殑浠婂ぉ錛岀浉淇og4j灝嗕細緇欏箍澶х殑璁捐寮鍙戜漢鍛樺甫鏉ユ柟 渚褲傚姞鍏ュ埌Log4j鐨勯槦浼嶆潵鍚э紒
銆銆
>>>> 2. 涓涓畝鍗曠殑渚嬪瓙 <<<<

銆銆鎴戜滑鍏堟潵鐪嬩竴涓畝鍗曠殑渚嬪瓙錛屽畠鏄竴涓敤Java瀹炵幇鐨勫鎴?鏈嶅姟鍣ㄧ綉緇滅▼搴忋傚垰寮濮嬫垜浠笉浣跨敤Log4j錛岃屾槸浣跨敤浜嗕竴緋誨垪鐨勬墦鍗拌鍙ワ紝鐒跺悗鎴戜滑灝嗕嬌鐢↙og4j鏉ュ疄鐜板畠鐨勬棩蹇楀姛鑳姐傝繖鏍鳳紝澶у灝卞彲浠ユ竻妤氬湴姣旇緝鍑哄墠鍚庝袱涓唬鐮佺殑宸埆銆?br /> 銆銆
銆銆2.1. 涓嶄嬌鐢↙og4j
銆銆
銆銆2.1.1. 瀹㈡埛紼嬪簭
銆銆package log4j ;
銆銆
銆銆import java.io.* ;
銆銆import java.net.* ;
銆銆
銆銆/**
銆銆 *
銆銆 * <p> Client Without Log4j </p>
銆銆 * <p> Description: a sample with log4j</p>
銆銆 * @version 1.0
銆銆 */
銆銆public class ClientWithoutLog4j {
銆銆
銆銆銆銆/**
銆銆銆銆 *
銆銆銆銆 * @param args
銆銆銆銆 */
銆銆銆銆public static void main ( String args [] ) {
銆銆
銆銆銆銆銆銆String welcome = null;
銆銆銆銆銆銆String response = null;
銆銆銆銆銆銆BufferedReader reader = null;
銆銆銆銆銆銆PrintWriter writer = null;
銆銆銆銆銆銆InputStream in = null;
銆銆銆銆銆銆OutputStream out = null;
銆銆銆銆銆銆Socket client = null;
銆銆
銆銆銆銆銆銆try {
銆銆銆銆銆銆銆銆client = new Socket ( "localhost", 8001 ) ;
銆銆銆銆銆銆銆銆System.out.println ( "info: Client socket: " + client ) ;
銆銆銆銆銆銆銆銆in = client.getInputStream () ;
銆銆銆銆銆銆銆銆out = client.getOutputStream () ;
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆銆銆銆銆銆銆System.out.println ( "error: IOException : " + e ) ;
銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆}
銆銆
銆銆銆銆銆銆try{
銆銆銆銆銆銆銆銆reader = new BufferedReader( new InputStreamReader ( in ) ) ;
銆銆銆銆銆銆銆銆writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;
銆銆
銆銆銆銆銆銆銆銆welcome = reader.readLine () ;
銆銆銆銆銆銆銆銆System.out.println ( "debug: Server says: '" + welcome + "'" ) ;
銆銆
銆銆銆銆銆銆銆銆System.out.println ( "debug: HELLO" ) ;
銆銆銆銆銆銆銆銆writer.println ( "HELLO" ) ;
銆銆銆銆銆銆銆銆response = reader.readLine () ;
銆銆銆銆銆銆銆銆System.out.println ( "debug: Server responds: '" + response + "'") ;
銆銆
銆銆銆銆銆銆銆銆System.out.println ( "debug: HELP" ) ;
銆銆銆銆銆銆銆銆writer.println ( "HELP" ) ;
銆銆銆銆銆銆銆銆response = reader.readLine () ;
銆銆銆銆銆銆銆銆System.out.println ( "debug: Server responds: '" + response + "'" ) ;
銆銆
銆銆銆銆銆銆銆銆System.out.println ( "debug: QUIT" ) ;
銆銆銆銆銆銆銆銆writer.println ( "QUIT" ) ;
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆銆銆銆銆銆銆System.out.println ( "warn: IOException in client.in.readln()" ) ;
銆銆銆銆銆銆銆銆System.out.println ( e ) ;
銆銆銆銆銆銆}
銆銆銆銆銆銆try{
銆銆銆銆銆銆銆銆Thread.sleep ( 2000 ) ;
銆銆銆銆銆銆} catch ( Exception ignored ) {}
銆銆銆銆}
銆銆}
銆銆
銆銆2.1.2. 鏈嶅姟鍣ㄧ▼搴?br /> 銆銆package log4j ;
銆銆
銆銆import java.util.* ;
銆銆import java.io.* ;
銆銆import java.net.* ;
銆銆
銆銆/**
銆銆 *
銆銆 * <p> Server Without Log4j </p>
銆銆 * <p> Description: a sample with log4j</p>
銆銆 * @version 1.0
銆銆 */
銆銆public class ServerWithoutLog4j {
銆銆
銆銆銆銆final static int SERVER_PORT = 8001 ; // this server's port
銆銆
銆銆銆銆/**
銆銆銆銆 *
銆銆銆銆 * @param args
銆銆銆銆 */
銆銆銆銆public static void main ( String args [] ) {
銆銆銆銆銆銆String clientRequest = null;
銆銆銆銆銆銆BufferedReader reader = null;
銆銆銆銆銆銆PrintWriter writer = null;
銆銆銆銆銆銆ServerSocket server = null;
銆銆銆銆銆銆Socket socket = null;
銆銆銆銆銆銆InputStream in = null;
銆銆銆銆銆銆OutputStream out = null;
銆銆
銆銆銆銆銆銆try {
銆銆銆銆銆銆銆銆server = new ServerSocket ( SERVER_PORT ) ;
銆銆銆銆銆銆銆銆System.out.println ( "info: ServerSocket before accept: " + server ) ;
銆銆銆銆銆銆銆銆System.out.println ( "info: Java server without log4j, on-line!" ) ;
銆銆
銆銆銆銆銆銆銆銆// wait for client's connection
銆銆銆銆銆銆銆銆socket = server.accept () ;
銆銆銆銆銆銆銆銆System.out.println ( "info: ServerSocket after accept: " + server )銆;
銆銆
銆銆銆銆銆銆銆銆in = socket.getInputStream () ;
銆銆銆銆銆銆銆銆out = socket.getOutputStream () ;
銆銆
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆銆銆銆銆銆銆System.out.println( "error: Server constructor IOException: " + e ) ;
銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆}
銆銆銆銆銆銆reader = new BufferedReader ( new InputStreamReader ( in ) ) ;
銆銆銆銆銆銆writer = new PrintWriter ( new OutputStreamWriter ( out ) , true ) ;
銆銆
銆銆銆銆銆銆// send welcome string to client
銆銆銆銆銆銆writer.println ( "Java server without log4j, " + new Date () ) ;
銆銆
銆銆銆銆銆銆while ( true ) {
銆銆銆銆銆銆銆銆try {
銆銆銆銆銆銆銆銆銆銆// read from client
銆銆銆銆銆銆銆銆銆銆clientRequest = reader.readLine () ;
銆銆銆銆銆銆銆銆銆銆System.out.println ( "debug: Client says: " + clientRequest ) ;
銆銆銆銆銆銆銆銆銆銆if ( clientRequest.startsWith ( "HELP" ) ) {
銆銆銆銆銆銆銆銆銆銆銆銆System.out.println ( "debug: OK!" ) ;
銆銆銆銆銆銆銆銆銆銆銆銆writer.println ( "Vocabulary: HELP QUIT" ) ;
銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆else {
銆銆銆銆銆銆銆銆銆銆銆銆if ( clientRequest.startsWith ( "QUIT" ) ) {
銆銆銆銆銆銆銆銆銆銆銆銆銆銆System.out.println ( "debug: OK!" ) ;
銆銆銆銆銆銆銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆銆銆else{
銆銆銆銆銆銆銆銆銆銆銆銆銆銆System.out.println ( "warn: Command '" +
銆銆 clientRequest + "' not understood." ) ;
銆銆銆銆銆銆銆銆銆銆銆銆銆銆writer.println ( "Command '" + clientRequest
銆銆 + "' not understood." ) ;
銆銆銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆} catch ( IOException e ) {
銆銆銆銆銆銆銆銆銆銆System.out.println ( "error: IOException in Server " + e ) ;
銆銆銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆}
銆銆銆銆}
銆銆}
銆銆
銆銆2.2. 榪佺Щ鍒癓og4j
銆銆
銆銆2.2.1. 瀹㈡埛紼嬪簭
銆銆
銆銆package log4j ;
銆銆
銆銆import java.io.* ;
銆銆import java.net.* ;
銆銆
銆銆// add for log4j: import some package
銆銆import org.apache.log4j.PropertyConfigurator ;
銆銆import org.apache.log4j.Logger ;
銆銆import org.apache.log4j.Level ;
銆銆
銆銆/**
銆銆 *
銆銆 * <p> Client With Log4j </p>
銆銆 * <p> Description: a sample with log4j</p>
銆銆 * @version 1.0
銆銆 */
銆銆public class ClientWithLog4j {
銆銆
銆銆銆銆/*
銆銆銆銆add for log4j: class Logger is the central class in the log4j package.
銆銆銆銆we can do most logging operations by Logger except configuration.
銆銆銆銆getLogger(...): retrieve a logger by name, if not then create for it.
銆銆銆銆*/
銆銆銆銆static Logger logger = Logger.getLogger
銆銆 ( ClientWithLog4j.class.getName () ) ;
銆銆
銆銆銆銆/**
銆銆銆銆 *
銆銆銆銆 * @param args : configuration file name
銆銆銆銆 */
銆銆銆銆public static void main ( String args [] ) {
銆銆
銆銆銆銆銆銆String welcome = null ;
銆銆銆銆銆銆String response = null ;
銆銆銆銆銆銆BufferedReader reader = null ;
銆銆銆銆銆銆PrintWriter writer = null ;
銆銆銆銆銆銆InputStream in = null ;
銆銆銆銆銆銆OutputStream out = null ;
銆銆銆銆銆銆Socket client = null ;
銆銆
銆銆銆銆銆銆/*
銆銆銆銆銆銆add for log4j: class BasicConfigurator can quickly configure the package.
銆銆銆銆銆銆print the information to console.
銆銆銆銆銆銆*/
銆銆銆銆銆銆PropertyConfigurator.configure ( "ClientWithLog4j.properties" ) ;
銆銆
銆銆銆銆銆銆// add for log4j: set the level
銆銆//銆銆銆銆logger.setLevel ( ( Level ) Level.DEBUG ) ;
銆銆
銆銆銆銆銆銆try{
銆銆銆銆銆銆銆銆client = new Socket( "localhost" , 8001 ) ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the info level
銆銆銆銆銆銆銆銆logger.info ( "Client socket: " + client ) ;
銆銆
銆銆銆銆銆銆銆銆in = client.getInputStream () ;
銆銆銆銆銆銆銆銆out = client.getOutputStream () ;
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the error level
銆銆銆銆銆銆銆銆logger.error ( "IOException : " + e ) ;
銆銆
銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆}
銆銆
銆銆銆銆銆銆try{
銆銆銆銆銆銆銆銆reader = new BufferedReader ( new InputStreamReader ( in ) ) ;
銆銆銆銆銆銆銆銆writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;
銆銆
銆銆銆銆銆銆銆銆welcome = reader.readLine () ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "Server says: '" + welcome + "'" ) ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "HELLO" ) ;
銆銆
銆銆銆銆銆銆銆銆writer.println ( "HELLO" ) ;
銆銆銆銆銆銆銆銆response = reader.readLine () ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "Server responds: '" + response + "'" ) ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "HELP" ) ;
銆銆
銆銆銆銆銆銆銆銆writer.println ( "HELP" ) ;
銆銆銆銆銆銆銆銆response = reader.readLine () ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "Server responds: '" + response + "'") ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆logger.debug ( "QUIT" ) ;
銆銆
銆銆銆銆銆銆銆銆writer.println ( "QUIT" ) ;
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the warn level
銆銆銆銆銆銆銆銆logger.warn ( "IOException in client.in.readln()" ) ;
銆銆
銆銆銆銆銆銆銆銆System.out.println ( e ) ;
銆銆銆銆銆銆}
銆銆銆銆銆銆try {
銆銆銆銆銆銆銆銆Thread.sleep ( 2000 ) ;
銆銆銆銆銆銆} catch ( Exception ignored ) {}
銆銆銆銆}
銆銆}
銆銆
銆銆2.2.2. 鏈嶅姟鍣ㄧ▼搴?br /> 銆銆
銆銆package log4j;
銆銆
銆銆import java.util.* ;
銆銆import java.io.* ;
銆銆import java.net.* ;
銆銆
銆銆// add for log4j: import some package
銆銆import org.apache.log4j.PropertyConfigurator ;
銆銆import org.apache.log4j.Logger ;
銆銆import org.apache.log4j.Level ;
銆銆
銆銆/**
銆銆 *
銆銆 * <p> Server With Log4j </p>
銆銆 * <p> Description: a sample with log4j</p>
銆銆 * @version 1.0
銆銆 */
銆銆public class ServerWithLog4j {
銆銆
銆銆銆銆final static int SERVER_PORT = 8001 ; // this server's port
銆銆
銆銆銆銆/*
銆銆銆銆add for log4j: class Logger is the central class in the log4j package.
銆銆銆銆we can do most logging operations by Logger except configuration.
銆銆銆銆getLogger(...): retrieve a logger by name, if not then create for it.
銆銆銆銆*/
銆銆銆銆static Logger logger = Logger.getLogger
銆銆 ( ServerWithLog4j.class.getName () ) ;
銆銆
銆銆銆銆/**
銆銆銆銆 *
銆銆銆銆 * @param args
銆銆銆銆 */
銆銆銆銆public static void main ( String args[]) {
銆銆銆銆銆銆String clientRequest = null ;
銆銆銆銆銆銆BufferedReader reader = null ;
銆銆銆銆銆銆PrintWriter writer = null ;
銆銆銆銆銆銆ServerSocket server = null ;
銆銆銆銆銆銆Socket socket = null ;
銆銆
銆銆銆銆銆銆InputStream in = null ;
銆銆銆銆銆銆OutputStream out = null ;
銆銆
銆銆銆銆銆銆/*
銆銆銆銆銆銆add for log4j: class BasicConfigurator can quickly configure the package.
銆銆銆銆銆銆print the information to console.
銆銆銆銆銆銆*/
銆銆銆銆銆銆PropertyConfigurator.configure ( "ServerWithLog4j.properties" ) ;
銆銆
銆銆銆銆銆銆// add for log4j: set the level
銆銆//銆銆銆銆logger.setLevel ( ( Level ) Level.DEBUG ) ;
銆銆
銆銆銆銆銆銆try{
銆銆銆銆銆銆銆銆server = new ServerSocket ( SERVER_PORT ) ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the info level
銆銆銆銆銆銆銆銆logger.info ( "ServerSocket before accept: " + server ) ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the info level
銆銆銆銆銆銆銆銆logger.info ( "Java server with log4j, on-line!" ) ;
銆銆
銆銆銆銆銆銆銆銆// wait for client's connection
銆銆銆銆銆銆銆銆socket = server.accept() ;
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the info level
銆銆銆銆銆銆銆銆logger.info ( "ServerSocket after accept: " + server ) ;
銆銆
銆銆銆銆銆銆銆銆in = socket.getInputStream() ;
銆銆銆銆銆銆銆銆out = socket.getOutputStream() ;
銆銆
銆銆銆銆銆銆} catch ( IOException e ) {
銆銆
銆銆銆銆銆銆銆銆// add for log4j: log a message with the error level
銆銆銆銆銆銆銆銆logger.error ( "Server constructor IOException: " + e ) ;
銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆}
銆銆銆銆銆銆reader = new BufferedReader ( new InputStreamReader ( in ) ) ;
銆銆銆銆銆銆writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;
銆銆
銆銆銆銆銆銆// send welcome string to client
銆銆銆銆銆銆writer.println ( "Java server with log4j, " + new Date () ) ;
銆銆
銆銆銆銆銆銆while ( true ) {
銆銆銆銆銆銆銆銆try {
銆銆銆銆銆銆銆銆銆銆// read from client
銆銆銆銆銆銆銆銆銆銆clientRequest = reader.readLine () ;
銆銆
銆銆銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆銆銆logger.debug ( "Client says: " + clientRequest ) ;
銆銆
銆銆銆銆銆銆銆銆銆銆if ( clientRequest.startsWith ( "HELP" ) ) {
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆銆銆銆銆logger.debug ( "OK!" ) ;
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆writer.println ( "Vocabulary: HELP QUIT" ) ;
銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆else {
銆銆銆銆銆銆銆銆銆銆銆銆if ( clientRequest.startsWith ( "QUIT" ) ) {
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆銆銆// add for log4j: log a message with the debug level
銆銆銆銆銆銆銆銆銆銆銆銆銆銆logger.debug ( "OK!" ) ;
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆銆銆else {
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆銆銆// add for log4j: log a message with the warn level
銆銆銆銆銆銆銆銆銆銆銆銆銆銆logger.warn ( "Command '"
銆銆 + clientRequest + "' not understood." ) ;
銆銆
銆銆銆銆銆銆銆銆銆銆銆銆銆銆writer.println ( "Command '"
銆銆 + clientRequest + "' not understood." ) ;
銆銆銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆} catch ( IOException e ) {
銆銆
銆銆銆銆銆銆銆銆銆銆// add for log4j: log a message with the error level
銆銆銆銆銆銆銆銆銆銆logger.error( "IOException in Server " + e ) ;
銆銆
銆銆銆銆銆銆銆銆銆銆System.exit ( 0 ) ;
銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆}
銆銆銆銆}
銆銆}
銆銆
銆銆2.2.3. 閰嶇疆鏂囦歡
銆銆
銆銆2.2.3.1. 瀹㈡埛紼嬪簭閰嶇疆鏂囦歡
銆銆
銆銆log4j.rootLogger=INFO, A1
銆銆
銆銆log4j.appender.A1=org.apache.log4j.ConsoleAppender
銆銆
銆銆log4j.appender.A1.layout=org.apache.log4j.PatternLayout
銆銆
銆銆log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
銆銆
銆銆2.2.3.2. 鏈嶅姟鍣ㄧ▼搴忛厤緗枃浠?br /> 銆銆
銆銆log4j.rootLogger=INFO, A1
銆銆
銆銆log4j.appender.A1=org.apache.log4j.ConsoleAppender
銆銆
銆銆log4j.appender.A1.layout=org.apache.log4j.PatternLayout
銆銆
銆銆log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
銆銆
銆銆2.3. 姣旇緝
銆銆
銆 銆姣旇緝榪欎袱涓簲鐢ㄥ彲浠ョ湅鍑猴紝閲囩敤Log4j榪涜鏃ュ織鎿嶄綔鐨勬暣涓繃紼嬬浉褰撶畝鍗曟槑浜嗭紝涓庣洿鎺ヤ嬌鐢⊿ystem.out.println璇彞榪涜鏃ュ織淇℃伅杈撳嚭鐨?鏂瑰紡鐩告瘮錛屽熀鏈笂娌℃湁澧炲姞浠g爜閲忥紝鍚屾椂鑳藉娓呮鍦扮悊瑙f瘡涓鏉℃棩蹇椾俊鎭殑閲嶈紼嬪害銆傞氳繃鎺у埗閰嶇疆鏂囦歡錛屾垜浠繕鍙互鐏墊椿鍦頒慨鏀規棩蹇椾俊鎭殑鏍煎紡錛岃緭鍑虹洰鐨勫湴絳夌瓑 鏂歸潰錛岃屽崟綰緷闈燬ystem.out.println璇彞錛屾樉鐒墮渶瑕佸仛鏇村鐨勫伐浣溿?/p>

>>>> 3 . Log4j鏃ュ織綆$悊緋葷粺綆鍗曚嬌鐢ㄨ鏄?<<<<

    閫氬父錛屾垜浠兘鎻愪緵涓涓悕涓?log4j.properties鐨勬枃浠訛紝鍦ㄧ涓嬈¤皟鐢ㄥ埌Log4J鏃訛紝Log4J浼氬湪綾昏礬寰勶紙../web-inf/class/褰撶劧涔熷彲浠ユ斁鍒板叾瀹冧換浣曠洰褰曪紝鍙璇ョ洰褰曡鍖呭惈鍒扮被璺緞涓嵆鍙級涓畾浣嶈繖涓枃浠訛紝騫惰鍏ヨ繖涓枃浠跺畬鎴愮殑閰嶇疆銆傝繖涓厤緗枃浠跺憡 璇塋og4J浠ヤ粈涔堟牱鐨勬牸寮忋佹妸浠涔堟牱鐨勪俊鎭佽緭鍑哄埌浠涔堝湴鏂廣?br /> 銆銆Log4j鏈変笁涓富瑕佺殑緇勪歡錛歀oggers(璁板綍鍣?錛孉ppenders(杈撳嚭婧?鍜孡ayouts(甯冨眬)錛岃繖閲屽彲綆鍗曠悊瑙d負鏃ュ織綾誨埆錛屾棩蹇楄杈撳嚭鐨勫湴鏂瑰拰鏃ュ織浠ヤ綍縐嶅艦寮忚緭鍑恒傜患鍚堜嬌鐢ㄨ繖涓変釜緇勪歡鍙互杞繪澗鐨勮褰曚俊鎭殑綾誨瀷鍜岀駭鍒紝騫跺彲浠ュ湪榪愯鏃舵帶鍒舵棩蹇楄緭鍑虹殑鏍峰紡鍜屼綅緗備笅闈㈠涓変釜緇勪歡鍒嗗埆榪涜璇存槑錛?br /> 銆銆
銆銆1銆?Loggers
銆 銆Loggers緇勪歡鍦ㄦ緋葷粺涓鍒嗕負浜斾釜綰у埆錛欴EBUG銆両NFO銆乄ARN銆丒RROR鍜孎ATAL銆傝繖浜斾釜綰у埆鏄湁欏哄簭鐨勶紝DEBUG < INFO < WARN < ERROR < FATAL錛屽垎鍒敤鏉ユ寚瀹氳繖鏉℃棩蹇椾俊鎭殑閲嶈紼嬪害,鏄庣櫧榪欎竴鐐瑰緢閲嶈錛岃繖閲孡og4j鏈変竴涓鍒欙細鍋囪Loggers綰у埆涓篜錛屽鏋滃湪Loggers涓彂鐢熶簡涓涓駭鍒玅姣擯楂橈紝鍒欏彲浠ュ惎鍔紝鍚﹀垯灞忚斀鎺夈?br /> 鍋囪浣犲畾涔夌殑綰у埆鏄痠nfo錛岄偅涔坋rror鍜寃arn鐨勬棩蹇楀彲浠ユ樉紺鴻屾瘮浠栦綆鐨刣ebug淇℃伅灝變笉鏄劇ず浜嗐?br />  銆
銆銆Java紼嬪簭涓句緥鏉ヨ錛?br /> 銆銆
銆銆//寤虹珛Logger鐨勪竴涓疄渚嬶紝鍛藉悕涓?#8220;com.foo”
銆銆銆Logger銆logger = Logger.getLogger("com.foo"); //"com.foo"鏄疄渚嬭繘琛屽懡鍚嶏紝涔熷彲浠ヤ換鎰?br /> 銆銆//璁劇疆logger鐨勭駭鍒傞氬父涓嶅湪紼嬪簭涓緗甽ogger鐨勭駭鍒備竴鑸湪閰嶇疆鏂囦歡涓緗?br /> 銆銆logger.setLevel(Level.INFO);
銆銆Logger barlogger = Logger.getLogger("com.foo.Bar");
銆銆//涓嬮潰榪欎釜璇鋒眰鍙敤錛屽洜涓篧ARN >= INFO
銆銆logger.warn("Low fuel level.");
銆銆//涓嬮潰榪欎釜璇鋒眰涓嶅彲鐢紝鍥犱負DEBUG < INFO
銆銆logger.debug("Starting search for nearest gas station.");
銆銆//鍛藉悕涓?#8220;com.foo.bar”鐨勫疄渚媌arlogger浼氱戶鎵垮疄渚?#8220;com.foo”鐨勭駭鍒傚洜姝わ紝涓嬮潰榪欎釜璇鋒眰鍙敤錛屽洜涓篒NFO >= INFO
銆銆barlogger.info("Located nearest gas station.");
銆銆//涓嬮潰榪欎釜璇鋒眰涓嶅彲鐢紝鍥犱負DEBUG < INFO
銆銆barlogger.debug("Exiting gas station search");
銆銆榪欓噷“鏄惁鍙敤”鐨勬剰鎬濇槸鑳藉惁杈撳嚭Logger淇℃伅銆?br /> 銆銆銆銆鍦ㄥLogger瀹炰緥榪涜鍛藉悕鏃訛紝娌℃湁闄愬埗錛屽彲浠ュ彇浠繪剰鑷繁鎰熷叴瓚g殑鍚嶅瓧銆備竴鑸儏鍐典笅寤鴻浠ョ被鐨勬墍鍦ㄤ綅緗潵鍛藉悕Logger瀹炰緥錛岃繖鏄洰鍓嶆潵璁叉瘮杈冩湁鏁堢殑Logger鍛藉悕鏂瑰紡銆傝繖鏍峰彲浠ヤ嬌寰楁瘡涓被寤虹珛鑷繁鐨勬棩蹇椾俊鎭紝渚夸簬綆$悊銆傛瘮濡傦細
銆銆
銆銆static Logger logger = Logger.getLogger(ClientWithLog4j.class.getName());
銆銆
銆銆2銆丄ppenders
銆銆紱佺敤涓庝嬌鐢ㄦ棩蹇楄姹傚彧鏄疞og4j鍏朵腑鐨勪竴涓皬灝忕殑鍦版柟錛孡og4j鏃ュ織緋葷粺鍏佽鎶婃棩蹇楄緭鍑哄埌涓嶅悓鐨勫湴鏂癸紝濡傛帶鍒跺彴錛圕onsole錛夈佹枃浠訛紙Files錛夈佹牴鎹ぉ鏁版垨鑰呮枃浠跺ぇ灝忎駭鐢熸柊鐨勬枃浠躲佷互嫻佺殑褰㈠紡鍙戦佸埌鍏跺畠鍦版柟絳夌瓑銆?br /> 銆銆
銆銆鍏惰娉曡〃紺轟負錛?br /> 銆銆
銆銆org.apache.log4j.ConsoleAppender錛堟帶鍒跺彴錛?br /> 銆銆org.apache.log4j.FileAppender錛堟枃浠訛級
銆銆org.apache.log4j.DailyRollingFileAppender錛堟瘡澶╀駭鐢熶竴涓棩蹇楁枃浠訛級
    org.apache.log4j.RollingFileAppender錛堟枃浠跺ぇ灝忓埌杈炬寚瀹氬昂瀵哥殑鏃跺欎駭鐢熶竴涓柊鐨勬枃浠訛級
銆銆org.apache.log4j.WriterAppender錛堝皢鏃ュ織淇℃伅浠ユ祦鏍煎紡鍙戦佸埌浠繪剰鎸囧畾鐨勫湴鏂癸級
銆銆
銆銆閰嶇疆鏃朵嬌鐢ㄦ柟寮忎負錛?br /> 銆銆log4j.appender.appenderName = fully.qualified.name.of.appender.class
銆銆log4j.appender.appenderName.option1 = value1
銆銆…
    log4j.appender.appenderName.option = valueN
銆銆榪欐牱灝變負鏃ュ織鐨勮緭鍑烘彁渚涗簡鐩稿綋澶х殑渚垮埄銆?br /> 銆銆
銆銆3銆丩ayouts
銆 銆鏈夋椂鐢ㄦ埛甯屾湜鏍規嵁鑷繁鐨勫枩濂芥牸寮忓寲鑷繁鐨勬棩蹇楄緭鍑恒侺og4j鍙互鍦ˋppenders鐨勫悗闈㈤檮鍔燣ayouts鏉ュ畬鎴愯繖涓姛鑳姐侺ayouts鎻愪緵浜?鍥涚鏃ュ織杈撳嚭鏍峰紡錛屽鏍規嵁HTML鏍峰紡銆佽嚜鐢辨寚瀹氭牱寮忋佸寘鍚棩蹇楃駭鍒笌淇℃伅鐨勬牱寮忓拰鍖呭惈鏃ュ織鏃墮棿銆佺嚎紼嬨佺被鍒瓑淇℃伅鐨勬牱寮忕瓑絳夈?br /> 銆銆
銆銆鍏惰娉曡〃紺轟負錛?br /> 銆銆
銆銆org.apache.log4j.HTMLLayout錛堜互HTML琛ㄦ牸褰㈠紡甯冨眬錛夛紝
銆銆org.apache.log4j.PatternLayout錛堝彲浠ョ伒媧誨湴鎸囧畾甯冨眬妯″紡錛夛紝
銆銆org.apache.log4j.SimpleLayout錛堝寘鍚棩蹇椾俊鎭殑綰у埆鍜屼俊鎭瓧絎︿覆錛夛紝
銆銆org.apache.log4j.TTCCLayout錛堝寘鍚棩蹇椾駭鐢熺殑鏃墮棿銆佺嚎紼嬨佺被鍒瓑絳変俊鎭級
銆銆
銆銆閰嶇疆鏃朵嬌鐢ㄦ柟寮忎負錛?br /> 銆銆
銆銆log4j.appender.appenderName.layout =fully.qualified.name.of.layout.class
銆銆log4j.appender.appenderName.layout.option1 = value1
銆銆…
銆銆log4j.appender.appenderName.layout.option = valueN

>>>>  4 . Log4j鐨勯厤緗?<<<<銆銆
銆銆
銆銆浠ヤ笂鏄粠鍘熺悊鏂歸潰璇存槑Log4j鐨勪嬌鐢ㄦ柟娉曪紝鍦ㄥ叿浣揓ava緙栫▼浣跨敤Log4j鍙互鍙傜収浠ヤ笅紺轟緥錛?br /> 銆銆
銆銆1銆?寤虹珛Logger瀹炰緥錛?br /> 銆銆璇硶琛ㄧず錛歱ublic static Logger getLogger( String name)
銆銆瀹為檯浣跨敤錛歴tatic Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ;
銆銆
銆銆2銆?璇誨彇閰嶇疆鏂囦歡錛?br /> 銆銆鑾峰緱浜哃ogger鐨勫疄渚嬩箣鍚庯紝鎺ヤ笅鏉ュ皢閰嶇疆Log4j浣跨敤鐜錛?br /> 銆銆璇硶琛ㄧず錛?br /> 銆銆BasicConfigurator.configure()錛氳嚜鍔ㄥ揩閫熷湴浣跨敤緙虹渷Log4j鐜銆?br /> 銆銆PropertyConfigurator.configure(String configFilename)錛氳鍙栦嬌鐢↗ava鐨勭壒鎬ф枃浠剁紪鍐欑殑閰嶇疆鏂囦歡銆?br /> 銆銆DOMConfigurator.configure(String filename)錛氳鍙朮ML褰㈠紡鐨勯厤緗枃浠躲?br /> 銆銆瀹為檯浣跨敤錛?br />     PropertyConfigurator.configure("ServerWithLog4j.properties");
銆銆
銆銆3銆?鎻掑叆鏃ュ織淇℃伅
銆銆瀹屾垚浜嗕互涓婅繛涓楠や互鍚庯紝涓嬮潰灝卞彲浠ユ寜鏃ュ織鐨勪笉鍚岀駭鍒彃鍏ュ埌浣犺璁板綍鏃ュ織鐨勪換浣曞湴鏂逛簡銆?br /> 銆銆璇硶琛ㄧず錛?br /> 銆銆Logger.debug(Object message);//璋冭瘯淇℃伅
銆銆Logger.info(Object message);//涓鑸俊鎭?br /> 銆銆Logger.warn(Object message);//璀﹀憡淇℃伅
銆銆Logger.error(Object message);//閿欒淇℃伅
銆銆Logger.fatal(Object message);//鑷村懡閿欒淇℃伅

銆銆瀹為檯浣跨敤錛歭ogger.info("ServerSocket before accept: " + server);
銆銆
銆>>>> 5. 閰嶇疆榪囩▼ <<<<

銆鍦ㄥ疄闄呯紪紼嬫椂錛岃浣縇og4j鐪熸鍦ㄧ郴緇熶腑榪愯浜嬪厛榪樿瀵歸厤緗枃浠惰繘琛屽畾涔夈傚畾涔夋楠ゅ氨鏄Logger銆丄ppender鍙奓ayout鐨勫垎鍒嬌鐢ㄣ?br />     Log4j鏀寔涓ょ閰嶇疆鏂囦歡鏍煎紡錛屼竴縐嶆槸XML鏍煎紡鐨勬枃浠訛紝涓縐嶆槸java properties錛坘ey=value錛夈怞ava鐗規ф枃浠訛紙閿?鍊鹼級銆戙備笅闈㈡垜浠粙緇嶄嬌鐢↗ava鐗規ф枃浠跺仛涓洪厤緗枃浠剁殑鏂規硶
   鍏蜂綋濡備笅錛?br /> 銆銆
銆銆1銆侀厤緗牴Logger錛屽叾璇硶涓猴細
銆銆log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
         level : 鏄棩蹇楄褰曠殑浼樺厛綰э紝鍒嗕負OFF銆丗ATAL銆丒RROR銆乄ARN銆両NFO銆丏EBUG銆丄LL鎴栬呮偍瀹氫箟鐨勭駭鍒侺og4j寤鴻鍙嬌鐢ㄥ洓涓駭鍒紝浼樺厛綰т粠楂樺埌浣庡垎鍒槸ERROR銆乄ARN銆両NFO銆丏EBUG銆傞氳繃鍦ㄨ繖閲屽畾涔夌殑綰у埆錛屾偍鍙互鎺у埗鍒板簲鐢ㄧ▼搴忎腑鐩稿簲綰у埆鐨勬棩蹇椾俊鎭殑寮鍏熾傛瘮濡傚湪榪欓噷瀹?涔変簡INFO綰у埆錛屽垯搴旂敤紼嬪簭涓墍鏈塂EBUG綰у埆鐨勬棩蹇椾俊鎭皢涓嶈鎵撳嵃鍑烘潵銆?br /> 銆銆     appenderName:灝辨槸鎸囧畾鏃ュ織淇℃伅杈撳嚭鍒板摢涓湴鏂廣傛偍鍙互鍚屾椂鎸囧畾澶氫釜杈撳嚭鐩殑鍦般?br />    渚嬪錛歭og4j.rootLogger錛漣nfo,A1,B2,C3
銆銆
銆銆2銆侀厤緗棩蹇椾俊鎭緭鍑虹洰鐨勫湴錛屽叾璇硶涓猴細
銆銆log4j.appender.appenderName = fully.qualified.name.of.appender.class  //
銆銆  "fully.qualified.name.of.appender.class" 鍙互鎸囧畾涓嬮潰浜斾釜鐩殑鍦頒腑鐨勪竴涓細
          1.org.apache.log4j.ConsoleAppender錛堟帶鍒跺彴錛?br />           2.org.apache.log4j.FileAppender錛堟枃浠訛級
          3.org.apache.log4j.DailyRollingFileAppender錛堟瘡澶╀駭鐢熶竴涓棩蹇楁枃浠訛級
          4.org.apache.log4j.RollingFileAppender錛堟枃浠跺ぇ灝忓埌杈炬寚瀹氬昂瀵哥殑鏃跺欎駭鐢熶竴涓柊鐨勬枃浠訛級
          5.org.apache.log4j.WriterAppender錛堝皢鏃ュ織淇℃伅浠ユ祦鏍煎紡鍙戦佸埌浠繪剰鎸囧畾鐨勫湴鏂癸級
             1.ConsoleAppender閫夐」
                    Threshold=WARN:鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰嬈°?br />                     ImmediateFlush=true:榛樿鍊兼槸true,鎰忚皳鐫鎵鏈夌殑娑堟伅閮戒細琚珛鍗寵緭鍑恒?br />                     Target=System.err錛氶粯璁ゆ儏鍐典笅鏄細System.out,鎸囧畾杈撳嚭鎺у埗鍙?br />               2.FileAppender 閫夐」
                    Threshold=WARN:鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰嬈°?br />                     ImmediateFlush=true:榛樿鍊兼槸true,鎰忚皳鐫鎵鏈夌殑娑堟伅閮戒細琚珛鍗寵緭鍑恒?br />                     File=mylog.txt:鎸囧畾娑堟伅杈撳嚭鍒癿ylog.txt鏂囦歡銆?br />                     Append=false:榛樿鍊兼槸true,鍗沖皢娑堟伅澧炲姞鍒版寚瀹氭枃浠朵腑錛宖alse鎸囧皢娑堟伅瑕嗙洊鎸囧畾鐨勬枃浠跺唴瀹廣?br />             3.DailyRollingFileAppender 閫夐」
                    Threshold=WARN:鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰嬈°?br />                     ImmediateFlush=true:榛樿鍊兼槸true,鎰忚皳鐫鎵鏈夌殑娑堟伅閮戒細琚珛鍗寵緭鍑恒?br />                     File=mylog.txt:鎸囧畾娑堟伅杈撳嚭鍒癿ylog.txt鏂囦歡銆?br />                     Append=false:榛樿鍊兼槸true,鍗沖皢娑堟伅澧炲姞鍒版寚瀹氭枃浠朵腑錛宖alse鎸囧皢娑堟伅瑕嗙洊鎸囧畾鐨勬枃浠跺唴瀹廣?br />                     DatePattern='.'yyyy-ww:姣忓懆婊氬姩涓嬈℃枃浠訛紝鍗蟲瘡鍛ㄤ駭鐢熶竴涓柊鐨勬枃浠躲傚綋鐒朵篃鍙互鎸囧畾鎸夋湀銆佸懆銆佸ぉ銆佹椂鍜屽垎銆傚嵆瀵瑰簲鐨勬牸寮忓涓嬶細
                    1)'.'yyyy-MM: 姣忔湀
                    2)'.'yyyy-ww: 姣忓懆
                    3)'.'yyyy-MM-dd: 姣忓ぉ
                    4)'.'yyyy-MM-dd-a: 姣忓ぉ涓ゆ
                    5)'.'yyyy-MM-dd-HH: 姣忓皬鏃?br />                     6)'.'yyyy-MM-dd-HH-mm: 姣忓垎閽?br />             4.RollingFileAppender 閫夐」
                    Threshold=WARN:鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰嬈°?br />                     ImmediateFlush=true:榛樿鍊兼槸true,鎰忚皳鐫鎵鏈夌殑娑堟伅閮戒細琚珛鍗寵緭鍑恒?br />                     File=mylog.txt:鎸囧畾娑堟伅杈撳嚭鍒癿ylog.txt鏂囦歡銆?br />                     Append=false:榛樿鍊兼槸true,鍗沖皢娑堟伅澧炲姞鍒版寚瀹氭枃浠朵腑錛宖alse鎸囧皢娑堟伅瑕嗙洊鎸囧畾鐨勬枃浠跺唴瀹廣?br />                     MaxFileSize=100KB: 鍚庣紑鍙互鏄疜B, MB 鎴栬呮槸 GB. 鍦ㄦ棩蹇楁枃浠跺埌杈捐澶у皬鏃訛紝灝嗕細鑷姩婊氬姩錛屽嵆灝嗗師鏉ョ殑鍐呭縐誨埌mylog.log.1鏂囦歡銆?br />                     MaxBackupIndex=2:鎸囧畾鍙互浜х敓鐨勬粴鍔ㄦ枃浠剁殑鏈澶ф暟銆?/p>

瀹為檯搴旂敤錛?br /> 銆銆log4j.appender.A1=org.apache.log4j.ConsoleAppender //榪欓噷鎸囧畾浜嗘棩蹇楄緭鍑虹殑絎竴涓綅緗瓵1鏄帶鍒跺彴ConsoleAppender
銆銆
銆銆3銆侀厤緗棩蹇椾俊鎭殑鏍煎紡錛屽叾璇硶涓猴細
銆銆A. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
              "fully.qualified.name.of.layout.class" 鍙互鎸囧畾涓嬮潰4涓牸寮忎腑鐨勪竴涓細
               1.org.apache.log4j.HTMLLayout錛堜互HTML琛ㄦ牸褰㈠紡甯冨眬錛夛紝
銆銆       2.org.apache.log4j.PatternLayout錛堝彲浠ョ伒媧誨湴鎸囧畾甯冨眬妯″紡錛夛紝
銆銆       3.org.apache.log4j.SimpleLayout錛堝寘鍚棩蹇椾俊鎭殑綰у埆鍜屼俊鎭瓧絎︿覆錛夛紝
銆銆       4.org.apache.log4j.TTCCLayout錛堝寘鍚棩蹇椾駭鐢熺殑鏃墮棿銆佺嚎紼嬨佺被鍒瓑絳変俊鎭級
                   1.HTMLLayout 閫夐」
                      LocationInfo=true:榛樿鍊兼槸false,杈撳嚭java鏂囦歡鍚嶇О鍜岃鍙?br />                       Title=my app file: 榛樿鍊兼槸 Log4J Log Messages.
                   2.PatternLayout 閫夐」
                      ConversionPattern=%m%n :鎸囧畾鎬庢牱鏍煎紡鍖栨寚瀹氱殑娑堟伅銆?br />                    3.XMLLayout  閫夐」
                      LocationInfo=true:榛樿鍊兼槸false,杈撳嚭java鏂囦歡鍜岃鍙?br />    瀹為檯搴旂敤錛?br />    銆銆log4j.appender.A1.layout=org.apache.log4j.PatternLayout

       B. log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
           榪欓噷闇瑕佽鏄庣殑灝辨槸鏃ュ織淇℃伅鏍煎紡涓嚑涓鍙鋒墍浠h〃鐨勫惈涔夛細
銆銆         錛峏鍙? X淇℃伅杈撳嚭鏃跺乏瀵歸綈錛?br />                    %p: 杈撳嚭鏃ュ織淇℃伅浼樺厛綰э紝鍗矰EBUG錛孖NFO錛學ARN錛孍RROR錛孎ATAL,
                   %d: 杈撳嚭鏃ュ織鏃墮棿鐐圭殑鏃ユ湡鎴栨椂闂達紝榛樿鏍煎紡涓篒SO8601錛屼篃鍙互鍦ㄥ叾鍚庢寚瀹氭牸寮忥紝姣斿錛?d{yyy MMM dd HH:mm:ss,SSS}錛岃緭鍑虹被浼鹼細2002騫?0鏈?8鏃?22錛?0錛?8錛?21
                   %r: 杈撳嚭鑷簲鐢ㄥ惎鍔ㄥ埌杈撳嚭璇og淇℃伅鑰楄垂鐨勬縐掓暟
                   %c: 杈撳嚭鏃ュ織淇℃伅鎵灞炵殑綾葷洰錛岄氬父灝辨槸鎵鍦ㄧ被鐨勫叏鍚?br />                    %t: 杈撳嚭浜х敓璇ユ棩蹇椾簨浠剁殑綰跨▼鍚?br />                    %l: 杈撳嚭鏃ュ織浜嬩歡鐨勫彂鐢熶綅緗紝鐩稿綋浜?C.%M(%F:%L)鐨勭粍鍚?鍖呮嫭綾葷洰鍚嶃佸彂鐢熺殑綰跨▼錛屼互鍙婂湪浠g爜涓殑琛屾暟銆備婦渚嬶細Testlog4.main(TestLog4.java:10)
                   %x: 杈撳嚭鍜屽綋鍓嶇嚎紼嬬浉鍏寵仈鐨凬DC(宓屽璇婃柇鐜),灝ゅ叾鐢ㄥ埌鍍廽ava servlets榪欐牱鐨勫瀹㈡埛澶氱嚎紼嬬殑搴旂敤涓?br />                    %%: 杈撳嚭涓涓?%"瀛楃
                   %F: 杈撳嚭鏃ュ織娑堟伅浜х敓鏃舵墍鍦ㄧ殑鏂囦歡鍚嶇О
                   %L: 杈撳嚭浠g爜涓殑琛屽彿
                   %m: 杈撳嚭浠g爜涓寚瀹氱殑娑堟伅,浜х敓鐨勬棩蹇楀叿浣撲俊鎭?br />                    %n: 杈撳嚭涓涓洖杞︽崲琛岀錛學indows騫沖彴涓?\r\n"錛孶nix騫沖彴涓?\n"杈撳嚭鏃ュ織淇℃伅鎹㈣
            鍙互鍦?涓庢ā寮忓瓧絎︿箣闂村姞涓婁慨楗扮鏉ユ帶鍒跺叾鏈灝忓搴︺佹渶澶у搴︺佸拰鏂囨湰鐨勫榻愭柟寮忋傚錛?br />                      1)%20c錛氭寚瀹氳緭鍑篶ategory鐨勫悕縐幫紝鏈灝忕殑瀹藉害鏄?0錛屽鏋渃ategory鐨勫悕縐板皬浜?0鐨勮瘽錛岄粯璁ょ殑鎯呭喌涓嬪彸瀵歸綈銆?br />                      2)%-20c:鎸囧畾杈撳嚭category鐨勫悕縐幫紝鏈灝忕殑瀹藉害鏄?0錛屽鏋渃ategory鐨勫悕縐板皬浜?0鐨勮瘽錛?-"鍙鋒寚瀹氬乏瀵歸綈銆?br />                      3)%.30c:鎸囧畾杈撳嚭category鐨勫悕縐幫紝鏈澶х殑瀹藉害鏄?0錛屽鏋渃ategory鐨勫悕縐板ぇ浜?0鐨勮瘽錛屽氨浼氬皢宸﹁竟澶氬嚭鐨勫瓧絎︽埅鎺夛紝浣嗗皬浜?0鐨勮瘽涔熶笉浼氭湁絀烘牸銆?br />                      4)%20.30c:濡傛灉category鐨勫悕縐板皬浜?0灝辮ˉ絀烘牸錛屽茍涓斿彸瀵歸綈錛屽鏋滃叾鍚嶇О闀夸簬30瀛楃錛屽氨浠庡乏杈逛氦榪滈攢鍑虹殑瀛楃鎴帀銆?/p>

銆銆榪欓噷涓婇潰涓変釜姝ラ鏄鍓嶉潰Log4j緇勪歡璇存槑鐨勪竴涓畝鍖栵紱涓嬮潰緇欏嚭涓涓叿浣撻厤緗緥瀛愶紝鍦ㄧ▼搴忎腑鍙互鍙傜収鎵ц錛?br /> 銆銆log4j.rootLogger=INFO,A1錛孊2
銆銆log4j.appender.A1=org.apache.log4j.ConsoleAppender
銆銆log4j.appender.A1.layout=org.apache.log4j.PatternLayout
銆銆log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
 銆銆鏍規嵁涓婇潰鐨勬棩蹇楁牸寮忥紝鏌愪竴涓▼搴忕殑杈撳嚭緇撴灉濡備笅錛?br /> 銆銆0銆銆INFO銆2003-06-13 13:23:46968 ClientWithLog4j Client socket: Socket[addr=localhost/127.0.0.1,port=8002,localport=2014]
         16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server says: 'Java server with log4j, Fri Jun 13 13:23:46 CST 2003'
銆銆16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j GOOD
銆銆16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Command 'HELLO' not understood.'
銆銆16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j HELP
銆銆16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Vocabulary: HELP QUIT'
銆銆16銆 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j QUIT
 
      4. # 褰撹緭鍑轟俊鎭簬鍥炴粴鏂囦歡鏃?/p>

          log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender   //鎸囧畾浠ユ枃浠剁殑鏂瑰紡杈撳嚭鏃ュ織
           log4j.appender.ROLLING_FILE.Threshold=ERROR
           log4j.appender.ROLLING_FILE.File=rolling.log  //鏂囦歡浣嶇疆,涔熷彲浠ョ敤鍙橀噺${java.home}銆乺olling.log
           log4j.appender.ROLLING_FILE.Append=true
           log4j.appender.ROLLING_FILE.MaxFileSize=10KB  //鏂囦歡鏈澶у昂瀵?br />            log4j.appender.ROLLING_FILE.MaxBackupIndex=1  //澶囦喚鏁?br />            log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
           log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  銆銆

××××××××××××××××××××××××××××××××××××××××××××××××
 
>>>> 6. Log4j姣旇緝鍏ㄩ潰鐨勯厤緗?<<<<

 LOG4J鐨勯厤緗箣綆鍗曚嬌瀹冮亶鍙婁簬瓚婃潵瓚婂鐨勫簲鐢ㄤ腑浜嗭細Log4J閰嶇疆鏂囦歡瀹炵幇浜嗚緭鍑哄埌鎺у埗鍙般佹枃浠躲佸洖婊氭枃浠躲佸彂閫佹棩蹇楅偖浠躲佽緭鍑哄埌鏁版嵁搴撴棩蹇楄〃銆佽嚜瀹氫箟鏍囩絳夊叏濂楀姛鑳姐傛嫨鍏朵竴浜屼嬌鐢ㄥ氨澶熺敤浜嗭紝

 log4j.rootLogger=DEBUG,CONSOLE,A1,im
 log4j.addivity.org.apache=true

 # 搴旂敤浜庢帶鍒跺彴

 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
 log4j.appender.Threshold=DEBUG
 log4j.appender.CONSOLE.Target=System.out
 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
 log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
 #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n

 #搴旂敤浜庢枃浠?

 log4j.appender.FILE=org.apache.log4j.FileAppender
 log4j.appender.FILE.File=file.log
 log4j.appender.FILE.Append=false
 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
 log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
 # Use this layout for LogFactor 5 analysis

 # 搴旂敤浜庢枃浠跺洖婊?

 log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
 log4j.appender.ROLLING_FILE.Threshold=ERROR
 log4j.appender.ROLLING_FILE.File=rolling.log  //鏂囦歡浣嶇疆,涔熷彲浠ョ敤鍙橀噺${java.home}銆乺olling.log
 log4j.appender.ROLLING_FILE.Append=true       //true:娣誨姞  false:瑕嗙洊
 log4j.appender.ROLLING_FILE.MaxFileSize=10KB   //鏂囦歡鏈澶у昂瀵?br />  log4j.appender.ROLLING_FILE.MaxBackupIndex=1  //澶囦喚鏁?br />  log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
 log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


 #搴旂敤浜巗ocket
 log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
 log4j.appender.SOCKET.RemoteHost=localhost
 log4j.appender.SOCKET.Port=5001
 log4j.appender.SOCKET.LocationInfo=true
 # Set up for Log Facter 5
 log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
 log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n


 # Log Factor 5 Appender
 log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
 log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

 # 鍙戦佹棩蹇楃粰閭歡

 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
 log4j.appender.MAIL.Threshold=FATAL
 log4j.appender.MAIL.BufferSize=10
 log4j.appender.MAIL.From=web@www.wuset.com
 log4j.appender.MAIL.SMTPHost=www.wusetu.com
 log4j.appender.MAIL.Subject=Log4J Message
 log4j.appender.MAIL.To=web@www.wusetu.com
 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
 log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

 # 鐢ㄤ簬鏁版嵁搴?
 log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
 log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
 log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
 log4j.appender.DATABASE.user=root
 log4j.appender.DATABASE.password=
 log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
 log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
 log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
 log4j.appender.A1.File=SampleMessages.log4j
 log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'
 log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout

 #鑷畾涔堿ppender

 log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

 log4j.appender.im.host = mail.cybercorlin.net
 log4j.appender.im.username = username
 log4j.appender.im.password = password
 log4j.appender.im.recipient = corlin@cybercorlin.net

 log4j.appender.im.layout=org.apache.log4j.PatternLayout
 log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

 

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=488099

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞藉嚭澶勶細http://blog.csdn.net/hbuzhang/archive/2006/01/13/578231.aspx



absolutej 2009-08-17 09:45 鍙戣〃璇勮
]]>
jsp娓╀範 鑷畾涔夋爣絳綱1.1http://www.tkk7.com/absolutedo/archive/2009/08/05/289953.htmlabsolutejabsolutejWed, 05 Aug 2009 07:07:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/08/05/289953.htmlhttp://www.tkk7.com/absolutedo/comments/289953.htmlhttp://www.tkk7.com/absolutedo/archive/2009/08/05/289953.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/289953.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/289953.html闃呰鍏ㄦ枃

absolutej 2009-08-05 15:07 鍙戣〃璇勮
]]>
jsp娓╀範 鑷畾涔夋爣絳綱1.0http://www.tkk7.com/absolutedo/archive/2009/07/28/288667.htmlabsolutejabsolutejTue, 28 Jul 2009 01:01:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/07/28/288667.htmlhttp://www.tkk7.com/absolutedo/comments/288667.htmlhttp://www.tkk7.com/absolutedo/archive/2009/07/28/288667.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/288667.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/288667.html闃呰鍏ㄦ枃

absolutej 2009-07-28 09:01 鍙戣〃璇勮
]]>
java瀛︿範:C/S緇撴瀯鐨勭櫥闄嗛〉闈?/title><link>http://www.tkk7.com/absolutedo/archive/2009/06/04/280095.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Thu, 04 Jun 2009 15:03:00 GMT</pubDate><guid>http://www.tkk7.com/absolutedo/archive/2009/06/04/280095.html</guid><wfw:comment>http://www.tkk7.com/absolutedo/comments/280095.html</wfw:comment><comments>http://www.tkk7.com/absolutedo/archive/2009/06/04/280095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/absolutedo/comments/commentRss/280095.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/absolutedo/services/trackbacks/280095.html</trackback:ping><description><![CDATA[鍑嗗緇欏叕鍙哥殑涓涓」鐩啓涓涓狢/S緇撴瀯鐨勭櫥闄嗛〉闈?鎯沖疄鐜頒笌WEB欏圭洰浜や簰,鍏跺疄涔熷氨鏄櫥闄嗙殑鍔熻兘鍚?鐩墠涓昏緙栧啓浜嗕竴涓櫥闄嗙晫闈?C/S緇撴瀯鐨勭晫闈㈢湡鐨勪笉澶ソ甯冨眬,濡傛灉涓嶇敤涓撲笟鐨勫伐鍏風殑璇?,鍏蜂綋鐨勪簨浠剁殑鐩戝惉鍜屽搷搴旇繕娌℃湁鍐?鏈榪戜竴孌墊椂闂翠細瀹屾垚!<br /> 鍏蜂綋鐣岄潰濡備笅鍥?<br /> <br /> <img height="250" alt="" src="http://www.tkk7.com/images/blogjava_net/absolutedo/login2.jpg" width="300" border="0" /><br /> <br />  鍏蜂綋浠g爜濡備笅:<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000"> com.jbase.ui;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.awt.Container;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.awt.event.ActionEvent;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.awt.event.ActionListener;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JButton;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JFrame;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JLabel;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JPanel;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JPasswordField;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.swing.JTextField;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> LoginUI </span><span style="color: #0000ff">extends</span><span style="color: #000000"> JFrame<br /> <img id="Codehighlighter1_336_2202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_336_2202_Open_Text.style.display='none'; Codehighlighter1_336_2202_Closed_Image.style.display='inline'; Codehighlighter1_336_2202_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_336_2202_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_336_2202_Closed_Text.style.display='none'; Codehighlighter1_336_2202_Open_Image.style.display='inline'; Codehighlighter1_336_2202_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_336_2202_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_336_2202_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> JLabel name,code;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> JTextField username;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000">  JPasswordField password;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> JButton submit,reset;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> JPanel orgPanel;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">double</span><span style="color: #000000"> width,height;<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> LoginUI()<br /> <img id="Codehighlighter1_540_1909_Open_Image" onclick="this.style.display='none'; Codehighlighter1_540_1909_Open_Text.style.display='none'; Codehighlighter1_540_1909_Closed_Image.style.display='inline'; Codehighlighter1_540_1909_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_540_1909_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_540_1909_Closed_Text.style.display='none'; Codehighlighter1_540_1909_Open_Image.style.display='inline'; Codehighlighter1_540_1909_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_540_1909_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_540_1909_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">super</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">緋葷粺鐧婚檰鐣岄潰</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        name</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JLabel(</span><span style="color: #000000">"</span><span style="color: #000000">鐢ㄦ埛鍚?</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        code</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JLabel(</span><span style="color: #000000">"</span><span style="color: #000000">瀵?nbsp; 鐮?</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        name.setBounds(</span><span style="color: #000000">20</span><span style="color: #000000">, </span><span style="color: #000000">20</span><span style="color: #000000">, </span><span style="color: #000000">55</span><span style="color: #000000">, </span><span style="color: #000000">50</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        code.setBounds(</span><span style="color: #000000">20</span><span style="color: #000000">, </span><span style="color: #000000">90</span><span style="color: #000000">, </span><span style="color: #000000">55</span><span style="color: #000000">, </span><span style="color: #000000">50</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        username</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JTextField(</span><span style="color: #000000">10</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        password</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JPasswordField();<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        username.setBounds(</span><span style="color: #000000">90</span><span style="color: #000000">, </span><span style="color: #000000">30</span><span style="color: #000000">, </span><span style="color: #000000">150</span><span style="color: #000000">, </span><span style="color: #000000">25</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        password.setBounds(</span><span style="color: #000000">90</span><span style="color: #000000">, </span><span style="color: #000000">100</span><span style="color: #000000">, </span><span style="color: #000000">150</span><span style="color: #000000">, </span><span style="color: #000000">25</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        submit</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JButton(</span><span style="color: #000000">"</span><span style="color: #000000">鐧婚檰</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        reset</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JButton(</span><span style="color: #000000">"</span><span style="color: #000000">閲嶇疆</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        submit.setBounds(</span><span style="color: #000000">80</span><span style="color: #000000">, </span><span style="color: #000000">150</span><span style="color: #000000">, </span><span style="color: #000000">60</span><span style="color: #000000">, </span><span style="color: #000000">30</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        reset.setBounds(</span><span style="color: #000000">170</span><span style="color: #000000">, </span><span style="color: #000000">150</span><span style="color: #000000">,</span><span style="color: #000000">60</span><span style="color: #000000">, </span><span style="color: #000000">30</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        orgPanel</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JPanel();<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        orgPanel.setLayout(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        orgPanel.add(name);orgPanel.add(username);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        orgPanel.add(code);orgPanel.add(password);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        orgPanel.add(submit);orgPanel.add(reset);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        submit.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000"> SubmitActionListener());</span><span style="color: #008000">//</span><span style="color: #008000">鍐呴儴綾誨疄鐜版柟寮?/span><span style="color: #008000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">        <br /> <img id="Codehighlighter1_1259_1382_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1259_1382_Open_Text.style.display='none'; Codehighlighter1_1259_1382_Closed_Image.style.display='inline'; Codehighlighter1_1259_1382_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1259_1382_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1259_1382_Closed_Text.style.display='none'; Codehighlighter1_1259_1382_Open_Image.style.display='inline'; Codehighlighter1_1259_1382_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        reset.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000"> ActionListener()</span><span id="Codehighlighter1_1259_1382_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_1259_1382_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">鍖垮悕鍐呴儴綾誨疄鐜版柟寮?/span><span style="color: #008000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">            </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> actionPerformed(ActionEvent e)<br /> <img id="Codehighlighter1_1321_1378_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1321_1378_Open_Text.style.display='none'; Codehighlighter1_1321_1378_Closed_Image.style.display='inline'; Codehighlighter1_1321_1378_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1321_1378_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1321_1378_Closed_Text.style.display='none'; Codehighlighter1_1321_1378_Open_Image.style.display='inline'; Codehighlighter1_1321_1378_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span id="Codehighlighter1_1321_1378_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_1321_1378_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />                username.setText(</span><span style="color: #000000">""</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />                password.setText(</span><span style="color: #000000">""</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        Container contentPanel</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.getContentPane();<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        contentPanel.add(orgPanel);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.setSize(</span><span style="color: #000000">300</span><span style="color: #000000">,</span><span style="color: #000000">250</span><span style="color: #000000">);            <br /> <img id="Codehighlighter1_1497_1746_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1497_1746_Open_Text.style.display='none'; Codehighlighter1_1497_1746_Closed_Image.style.display='inline'; Codehighlighter1_1497_1746_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1497_1746_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1497_1746_Closed_Text.style.display='none'; Codehighlighter1_1497_1746_Open_Image.style.display='inline'; Codehighlighter1_1497_1746_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span id="Codehighlighter1_1497_1746_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1497_1746_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />         * 璁劇疆紿楀彛灞呬腑鏄劇ず<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />         * width=Toolkit.getDefaultToolkit().getScreenSize().getWidth();<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />         * height=Toolkit.getDefaultToolkit().getScreenSize().getHeight();    <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />         * this.setLocation((int)(width-this.getWidth())/2, (int)(height-this.getHeight())/2);            <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        </span><span style="color: #008000">*/</span></span><span style="color: #000000">            <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.setLocationRelativeTo(</span><span style="color: #0000ff">null</span><span style="color: #000000">); <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.setVisible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.setResizable(</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_1912_1936_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1912_1936_Open_Text.style.display='none'; Codehighlighter1_1912_1936_Closed_Image.style.display='inline'; Codehighlighter1_1912_1936_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1912_1936_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1912_1936_Closed_Text.style.display='none'; Codehighlighter1_1912_1936_Open_Image.style.display='inline'; Codehighlighter1_1912_1936_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_1912_1936_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1912_1936_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />     * 鍐呴儴綾誨疄鐜皊ubmit鐩戝惉<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">class</span><span style="color: #000000"> SubmitActionListener </span><span style="color: #0000ff">implements</span><span style="color: #000000"> ActionListener<br /> <img id="Codehighlighter1_1993_2137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1993_2137_Open_Text.style.display='none'; Codehighlighter1_1993_2137_Closed_Image.style.display='inline'; Codehighlighter1_1993_2137_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1993_2137_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1993_2137_Closed_Text.style.display='none'; Codehighlighter1_1993_2137_Open_Image.style.display='inline'; Codehighlighter1_1993_2137_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_1993_2137_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_1993_2137_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> actionPerformed(ActionEvent e)<br /> <img id="Codehighlighter1_2042_2134_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2042_2134_Open_Text.style.display='none'; Codehighlighter1_2042_2134_Closed_Image.style.display='inline'; Codehighlighter1_2042_2134_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2042_2134_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2042_2134_Closed_Text.style.display='none'; Codehighlighter1_2042_2134_Open_Image.style.display='inline'; Codehighlighter1_2042_2134_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span id="Codehighlighter1_2042_2134_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_2042_2134_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(username.getText()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">String.valueOf(password.getPassword()));<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] ss)<br /> <img id="Codehighlighter1_2180_2200_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2180_2200_Open_Text.style.display='none'; Codehighlighter1_2180_2200_Closed_Image.style.display='inline'; Codehighlighter1_2180_2200_Closed_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2180_2200_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2180_2200_Closed_Text.style.display='none'; Codehighlighter1_2180_2200_Open_Image.style.display='inline'; Codehighlighter1_2180_2200_Open_Text.style.display='inline';" alt="" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_2180_2200_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_2180_2200_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">new</span><span style="color: #000000"> LoginUI();<br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span></div> <img src ="http://www.tkk7.com/absolutedo/aggbug/280095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/absolutedo/" target="_blank">absolutej</a> 2009-06-04 23:03 <a href="http://www.tkk7.com/absolutedo/archive/2009/06/04/280095.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java瀛︿範:瀵瑰崐鏌ユ壘綆楁硶 閫掑綊鍐欐硶http://www.tkk7.com/absolutedo/archive/2009/05/05/268909.htmlabsolutejabsolutejTue, 05 May 2009 01:09:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/05/05/268909.htmlhttp://www.tkk7.com/absolutedo/comments/268909.htmlhttp://www.tkk7.com/absolutedo/archive/2009/05/05/268909.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/268909.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/268909.html 瀵瑰崐鏌ユ壘 錛?span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 瀹嬩綋">Binary Search錛夌殑鍩烘湰鎬濇兂鏄紝棣栧厛K涓庤〃涓棿錛堣褰曪級鐨勫叧閿瘝 K n/2姣旇緝錛屽叾緇撴灉鏈変笁縐嶆儏鍐碉細錛?/span>K錛?/span>Kn/2錛?/span>K= K n/2 錛?/span>K錛?/span>Kn/2錛夛紱鐒跺悗鏍規嵁姣旇緝緇撴灉灝辮兘紜畾涓嬩竴嬈″簲璇ュ埌琛ㄧ殑鍝竴鍗婁腑鍘繪煡鎵撅紙鎴栨煡鎵炬垚鍔燂級錛屽茍瀵圭‘瀹氫簡鐨勮繖涓鍗婇噸澶嶄笂榪拌繃紼嬶紝濡傛涓嬪幓鐩村埌琛ㄧ殑闀垮害閫掑噺涓?/span>1  .

public class IntegerQuery {
    
public static void query(int[] arrays,int queryVal,int begin,int end)
    
{
        
int centerIndex=(begin+end)/2;
        
int centerVal=arrays[centerIndex];
        
if(begin>end)//init error
        {
            System.out.println(queryVal
+" not in this array!");
            
return;
        }

        
if(queryVal==centerVal)
        
{
            System.out.println(queryVal
+" in this array,it's index is: "+centerIndex);
            
return;
        }

        
        
if(queryVal>centerVal)
            begin
=centerIndex+1;
        
else    
            end
=centerIndex-1;        
        query(arrays,queryVal,begin,end);
    }


    
public static void main(String[] args){
        
int[] arrays={1,2,4,5,7,9,12,15,24,32};
        
int queryVal=24;
        query(arrays,queryVal,
0,arrays.length-1);
    }

}



absolutej 2009-05-05 09:09 鍙戣〃璇勮
]]>
Java瀛︿範 NineByNine 涔樻硶鍙h瘈http://www.tkk7.com/absolutedo/archive/2009/04/21/266863.htmlabsolutejabsolutejTue, 21 Apr 2009 14:50:00 GMThttp://www.tkk7.com/absolutedo/archive/2009/04/21/266863.htmlhttp://www.tkk7.com/absolutedo/comments/266863.htmlhttp://www.tkk7.com/absolutedo/archive/2009/04/21/266863.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/266863.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/266863.htmlpackage com.jbase.test;

public class NinebyNine {
    
private static int m=1;
    
private static int n=1;
    
public static void main(String args[])
    
{
        
/*
        for(int i=1;i<=9;i++)
        {
            for(int j=1;j<=i;j++)
            {
                if(i==j)
                    System.out.println(i+"x"+j+"="+i*j+"\t");
                else
                    System.out.print(i+"x"+j+"="+i*j+"\t");                
            }
        }
        
*/

        
while(m<=9)
        
{
            
while(n<=m)
            
{
                
if(n==m)
                    System.out.println(m
+"x"+n+"="+m*n+"\t");
                
else
                    System.out.print(m
+"x"+n+"="+m*n+"\t");
                n
++;
            }

            m
++;
            n
=1;
        }

        
    }

}


鍛靛懙,鍦ㄧ敤sql鍐欏皬瀛︾敓鐨勪節涔濅箻娉曞彛璇,鏃犲sql涓病鏈夌被浼糵or寰幆鐨勮鍙?濂借薄鍙ソwhile鏉ユ帶鍒?鍐欐潵鍐欏幓,鏁堟灉灝辨槸鍑轟笉鏉?鑷繁鍏堢敤java鍐欎簡涓?鐢ㄤ袱涓猣or寰幆,寰堝揩灝卞啓濂戒簡,鍙槸璋冩暣浜嗕竴涓嬭緭鍑烘牸寮?浣嗘槸鎴戠敤while寰幆鎺у埗璇彞鐨勬椂鍊?涓寮濮嬭繕鏄嚭閿欎簡,鎯蟲槸鎯沖埌璺沖嚭鍐呭眰寰幆鐨勬椂鍊?j鐨勫艱浠?寮濮?鎴戠珶鐒跺湪鍐呭眰寰幆榪欐牱鍐?
if(n==m)
{
  n
=1;
  n
++;
}
鐩存帴瀵艱嚧myeclipse down鎺変簡,瑙佺瑧浜?鍛靛懙!

sql 鍐欑殑涔樻硶鍙h瘈濡備笅:
 1declare @i int,@j int,@str varchar(1024)
 2set @i=1 
 3set @j=1
 4set @str=''
 5while(@i<=9)
 6begin
 7   while(@j<=@i)
 8   begin
 9      if @j=@i
10          set @str=@str+char(9)+cast(@i as varchar(10))+'*'+convert(varchar(10),@j)+'='+cast(@i*@j as varchar(10))+char(13)
11      else
12        set @str=@str+char(9)+cast(@i as varchar(10))+'*'+convert(varchar(10),@j)+'='+cast(@i*@j as varchar(10))            
13      set @j=@j+1
14   end
15   set @i=@i+1
16   set @j=1
17end
18print @str

鎵撳嵃鏁堟灉:



absolutej 2009-04-21 22:50 鍙戣〃璇勮
]]>
Java瀛︿範 JDBC榪炴帴SQLServer2K嫻嬭瘯http://www.tkk7.com/absolutedo/archive/2008/12/04/244270.htmlabsolutejabsolutejThu, 04 Dec 2008 01:33:00 GMThttp://www.tkk7.com/absolutedo/archive/2008/12/04/244270.htmlhttp://www.tkk7.com/absolutedo/comments/244270.htmlhttp://www.tkk7.com/absolutedo/archive/2008/12/04/244270.html#Feedback0http://www.tkk7.com/absolutedo/comments/commentRss/244270.htmlhttp://www.tkk7.com/absolutedo/services/trackbacks/244270.html鍒氳瀹屾暟鎹簱,JDK浠涔堢殑,鍛靛懙,鍙兘鏄敱浜庤嚜宸辨病鏈夋暣鐞嗙殑涔犳儻,姣忔閮借鍐欎釜榪炴帴嫻嬭瘯綾?鐪婮DBC榪炴帴鏄惁鎴愬姛.浠婂ぉ鎶婁互鍓嶅啓鐨勪竴涓畝鍗曠殑JDBC嫻嬭瘯綾繪斁鍒板崥瀹㈤噷,浠ュ悗瑕佺敤,鐩存帴鑰冭繃鍘誨氨鍙互浜?

import java.sql.SQLException;
import java.lang.ClassNotFoundException;
import java.sql.Connection ;
import java.sql.DriverManager;

public class T
{

    public static void main(String[] args)
    {
             try
             {
                      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                      Connection  conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433","sa","sa");
                      System.out.println("Weather Connect Success?"+conn!=null?"Success":"Failure");
              }
             catch(ClassNotFoundException cnfe)
             {
                      cnfe.printStackTrace();
             }
              catch(SQLException e)
              {
                      e.printStackTrace();
              }     
    }   
}



absolutej 2008-12-04 09:33 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲福利视频网址| 国产精品亚洲一区二区在线观看 | 亚洲色精品三区二区一区| 国产一区视频在线免费观看| 亚洲免费日韩无码系列| 99久热只有精品视频免费观看17| 亚洲AV无码无限在线观看不卡| 8x8×在线永久免费视频| 亚洲精品久久无码av片俺去也| 扒开双腿猛进入爽爽免费视频| 男人天堂2018亚洲男人天堂| 亚洲AV无码一区二区三区国产| 美女尿口扒开图片免费| 亚洲国产V高清在线观看| 91精品国产免费久久国语麻豆| 成人亚洲国产精品久久| 老色鬼久久亚洲AV综合| 又黄又大又爽免费视频| 2021在线观看视频精品免费| 亚洲不卡1卡2卡三卡2021麻豆| 18禁网站免费无遮挡无码中文| 亚洲图片激情小说| 亚洲日韩在线观看免费视频| 成人性做爰aaa片免费看| 亚洲综合精品第一页| 亚洲AV无码乱码在线观看裸奔| 四虎免费大片aⅴ入口| 久久久久免费看成人影片| 黄页网站在线视频免费| 亚洲av无码一区二区三区天堂古代| 在线播放亚洲第一字幕| 免费成人在线视频观看| 亚洲av纯肉无码精品动漫| 国产成人亚洲影院在线观看| 成人免费视频一区二区三区| 一区二区三区在线免费看| 二区久久国产乱子伦免费精品 | 水蜜桃视频在线观看免费播放高清| 亚洲av无码不卡一区二区三区 | 亚洲日韩国产精品无码av| 亚洲精品无码MV在线观看|