锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍏抽敭瀛楋細(xì)AJAX,Tree,Struts錛孌OM
闅炬槗搴︼細(xì) 涓?BR>杞歡鐗堟湰錛歴truts 1.2.8
鏃墮棿錛?006-01-27
Author錛欿ino
***************************************
鍓嶉樀瀛愬啓浜嗕竴涓皬浠g爜澶勭悊AJAX涓媁ebTree鐨勬瀯寤猴紝鍏朵腑紕板埌浜嗕竴浜涢棶棰橈紝涔熸湁涓浜涙兂娉曪紝鐜板湪璇村嚭鏉ュ笇鏈涘ぇ瀹朵竴璧風(fēng)湅鐪嬶紝濡傛灉妗堢敱闂璇蜂笉鍚濊祼鏁欙紝鏈漢涓嶈儨鎰熸縺鍟娿?BR>
鑳屾櫙錛?BR>榪欐鍥犱負(fù)鏄姞杞藉湪Struts涓婄殑寮鍙戯紝W(xué)eb欏甸潰涓婄殑Tree浣淎JAX澶勭悊錛屽洜涓烘湁Node鐨勫鍒犳敼鎿嶄綔銆係erver绔洜涓鴻鍜學(xué)ebService榪炴帴錛屾墍浠ヤ笉鍋欳ache銆?BR>
瑙e喅妗堬細(xì)
1銆備嬌鐢≒olling璋冪敤AJAX瀹氭湡鏇存柊Tree銆?BR>2銆侫JAX璁塊棶鐨勫湴鍧鏄竴涓狝ction錛堜緥錛歝reatetree.do錛夈傜敤鏉ヨ繑鍥濼ree妯″瀷鎴栬呴敊璇秷鎭紙鍥介檯鍖栵級(jí)銆?BR>3銆侭rowser瑙f瀽XML鐨凾reeModel銆?BR>4銆傚湪Browser姣旇緝鏂版棫2涓猅reeModel錛屽畬鎴愰変腑鐘舵佺殑緇ф壙銆?BR>5銆侰SS娓叉煋TreeNode銆?BR>
浠ヤ笂鏄畝鍗曠殑鎬濊礬銆備紶緇熺殑AJAX搴旇鏄敖閲忓噺灝慩Ml浼犺緭閲忥紝榪簬娌℃湁Cache鐨勭紭鏁咃紝騫朵笖WS緇欐垜鐨勮妭鐐瑰茍涓嶈兘綆鍗曠殑寰楀埌鐖跺瓙鍏崇郴銆傛垜閫夋嫨浜嗭紝姣忔Polling鏇存柊鏁存5鏍?wèi)鐨勬栆?guī)銆傛ц兘鏈祴銆?BR>
鎴戣繖嬈″湪web server 绔瀯寤篢ree鏃剁洿鎺ョ敤娣卞害浼樺厛杞崲鎴怷ML銆俋Ml涓暟鎹殑鍏堝悗欏哄簭鍐沖畾浜員ree浠庣埗鍒板瓙錛屼粠鍏勫埌寮熺殑娣卞害浼樺厛鍏崇郴錛宨ndent鍐沖畾浜嗘繁搴︼紙涔熷氨鏄緝榪涳級(jí)銆傝繖鏍鋒垜浠嶴erver绔紶鍏ョ殑涔熷氨鎴愪簡涓涓爣鍑嗙殑Tree鏄劇ずModel銆傛牸寮忓畾涔夊涓嬨?BR> * Gobal Master Tree DTD
* <!ELEMENT tree (tree*)>
* <!ATTLIST tree
* id CDATA #REQUIRED LoctionInfo's toString
* indent CDATA #REQUIRED Tree's Level
* text CDATA #REQUIRED label in html
* tooltip CDATA #IMPLIED title in html
* action CDATA #IMPLIED href in html
* icon CDATA #IMPLIED close icon with the node status
* openicon CDATA #IMPLIED open icon with the node status
* open CDATA #IMPLIED> node's open states ,default is false in server.
* target CDATA #IMPLIED node's open target
*
<span id="maintree">
<tree id="Ajax" indent=0 text="Root" tooltip="Root" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="110" indent=1 text="Node 1" tooltip="Node 1" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="120" indent=2 text="Node 2" tooltip="Node 2" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="12580" indent=2 text="Node 3" tooltip="Node 3" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="user" indent=1 text="Node 4" tooltip="Node 4" action="/logout.do" icon="" openicon= "" open="false"/>
</span>
涓婅竟鐨?Tree鏄劇ず鍑烘潵濡備笅
Root
鈹?BR> 鈹淣ode 1
鈹?nbsp; 鈹?BR> 鈹?nbsp; 鈹淣ode 2
鈹?nbsp; 鈹擭ode 3
鈹擭ode 4
indent 灝辨槸緙╄繘銆?BR>鏁版嵁鐨勫厛鍚庨『搴忓氨鏄繁搴︿紭鍏堢殑閬嶅巻欏哄簭銆?BR>
榪欐牱鐨勬暟鎹埌浜咮rowser錛屼細(xì)鍏堣杞垚涓涓璞℃暟緇勩?BR>
榪欎釜鏄疛ava浜嗭紝鐔熸?zhèn)夊惂銆?/P>
C++鐨勫畾涔夊涓嬶細(xì)
1.2铏氬嚱鏁?BR>
鎶婁竴涓熀綾誨嚱鏁板0鏄庝負(fù)virtual錛岃鍑芥暟灝卞彲浠ュ湪浠諱綍媧劇敓綾諱腑閲嶅啓浜嗐?BR>Java鐨勮娉曚腑娌℃湁virtual榪欎釜璇嶏紝浣嗘槸Java鍗村交褰誨簳搴曠殑璐交鐫榪欎釜姒傚康錛孞ava鐨勬墍鏈夊嚱鏁伴兘鏄櫄鎷熺殑銆?BR>C++鐨勬湅鍙嬪彲鑳芥瘮杈冪啛鎮(zhèn)夎繖涓瘝鍚с傚浜庤繖涓鐐笴#鍜孋++鏄浉鍚岀殑銆備絾鏄娉曠◢寰湁鐐逛笉鍚岋紝C#闇瑕佷嬌鐢╫verride綾繪樉紺哄0鏄庨噸鍐欏嚱鏁般傚涓嬩緥
1.3闅愯棌鏂規(guī)硶
鐩稿悓絳懼悕鐨勬柟娉曞湪鍩虹被鍜屽瓙綾婚兘澹版槑浜嗭紝浣嗘柟娉曚笉鏄痸itrual銆傞偅涔堝疄闄呬腑鍒板簳鍝釜鏂規(guī)硶琚墽琛岋紝鍙栧喅浜庡紩鐢ㄥ疄渚嬬殑鍙橀噺綾誨瀷錛岃屼笉鏄疄鍔涙湰韜殑綾誨瀷銆?BR>鎴戜滑涔熶笉鐢ㄥお鎷呭績榪欎釜闂錛屽洜涓篊#浼?xì)鍦ň~栬瘧鏈熺粰鍑鴻鍛娿?BR>
1.4璋冪敤縐瘡鍑芥暟鐨勬柟娉?BR>java涓垜浠嬌鐢╯uper錛孋#涓嬌鐢╞ase銆?BR>
1.5鎶借薄綾誨拰鎶借薄鍑芥暟
鍜宩ava涓鏍蜂嬌鐢╝bstract澹版槑銆?BR>鍜孋++鐩告瘮錛孋++鐨勬娊璞″嚱鏁拌澹版槑涓虹函铏氬嚱鏁般?BR>
1.6瀵嗗皝綾誨拰瀵嗗皝鏂規(guī)硶
鍦↗ava涓垜浠妸瀹冨彨鍋歠inal銆備篃灝辨槸涓嶈兘緇ф壙鐨勭被鎴栦笉鑳介噸杞界殑鏂規(guī)硶銆?/P>
1.7鏋勯犲嚱鏁扮殑璋冪敤灞傛
鍜孞ava涓鏍鳳紝鎴戝氨涓嶅璇翠簡銆傝繖閲屽己璋冧竴涓壒孌婄殑璇硶鏍煎紡錛?BR>
緇撴灉濡傞璁¢偅鏍?錛?BR>濡傛灉鍩虹被鍚湁甯﹀弬鏁扮殑鏋勯犲嚱鏁幫紝媧劇敓綾諱笉鑳借皟鐢ㄩ粯璁ゅ熀綾繪瀯閫犲嚱鏁般?BR>澶氬弬鏁版淳鐢熺被鏋勯犲嚱鏁幫紝鍙互璋冪敤鍙傛暟鏁扮洰涓嶅悓鐨勫熀綾繪瀯閫犲嚱鏁般?BR>
鎴戜滑涓璧鋒潵鐪嬬湅涓轟粈涔堣繖2涓粨璁哄彲浠ユ垚绔嬶細(xì)
棣栧厛錛屽浜庡甫鍙傛暟鐨勫熀綾繪瀯閫犲嚱鏁板湪鍒濆鍖栫殑鏃跺欎細(xì)璇曞浘鍘昏皟鐢ㄥ熀綾婚粯璁ゆ瀯閫犲嚱鏁幫紝浣嗗湪涓婅竟鐨勫熀綾葷▼搴忛噷錛屽洜涓哄彧澹版槑浜嗗甫涓涓弬鏁扮殑鏋勯犲嚱鏁幫紝鎵浠ublic Second(string f):base()鎴栬卲ublic Second(string f)灝變笉浼?xì)閫氳繃緙栬瘧錛屽洜涓轟粬鎵句笉鍒板熀綾葷殑榛樿鏋勯犲嚱鏁幫紝鍙兘榪藉姞public BaseClass()鎵嶄細(xì)閫氳繃銆傝繖涓鐐瑰拰JAVA鏄笉鍚岀殑錛宩ava鐨勯粯璁ゆ瀯閫犲嚱鏁伴粯璁ゆ槸涓嶅嚭鐜板湪浠g爜閲岀殑銆侰#鍗翠竴瀹氳鍐欏嚭鏉ャ?BR>
<<<== 鏈夐敊璇侰#鐨勯粯璁ゆ瀯閫犲嚱鏁頒綋鍒跺拰Java鏄竴鏍風(fēng)殑銆傚叿浣撳涓嬶細(xì)
1銆傜埗綾繪病鏈夎嚜瀹氫箟鏋勯犲嚱鏁扮殑鎯呭喌涓嬶紝浣跨敤榛樿鏋勯犲嚱鏁般傜敤鎴峰彲浠ヤ笉鍐欏嚭鏉ャ?BR>2銆備竴鏃︾埗綾繪湁浜嗚嚜瀹氫箟鐨勬瀯閫犲嚱鏁幫紝閭d箞濡傛灉瑕佷嬌鐢ㄦ棤鍙傜殑榛樿鏋勯犲嚱鏁板氨蹇呴』瑕佹樉紺哄畾涔夈?/FONT>
鍏舵錛屼笅杈規(guī)淳鐢熺被1涓弬鏁般?涓弬鏁扮敋鑷沖涓弬鏁扮殑鏋勯犲嚱鏁頒負(fù)浠涔堣兘璁塊棶鍙湁涓涓弬鏁扮殑鍩虹被鏋勯犲嚱鏁板憿錛熷師鍥犳槸錛屽叧閿瓧this錛屼笂杈圭殑紼嬪簭鏀瑰啓濡備笅鎴戞兂澶у灝辨槑鐧戒簡銆?BR>
2.1淇グ絎?BR>C#鏀寔涓嬭竟鐨勯泦涓慨楗扮錛?BR>public 錛?nbsp; protected 錛?internal 錛宲rivate 錛?protected internal
鍚孞ava銆俰nternal鍜宲rotected internal鏄?net framework鏂板鐨勪竴涓唴瀹廣傛牴鎹畾涔夈?BR>internal鍦ㄥ悓涓涓▼搴忛泦鍐呭拰public綾諱技錛屼笉鍚岀殑紼嬪簭闆嗛棿錛宲ublic澹版槑鐨勭被鎴栨柟娉曚粛鐒跺彲鐢紝浣嗘槸internal鐨勬柟娉曟垨綾誨垯琚殣钘忋?BR>protected internal鍚堝茍浜唒rotected 鍜宨nternal錛屼絾榪欐槸涓縐峯r鍏崇郴錛岃屼笉鏄痑nd鍏崇郴銆俻rotected internal鎴愬憳鍦ㄥ悓涓涓▼搴忛泦鐨勪換浣曚唬鐮侀兘鍙錛屽湪媧劇敓綾誨彲瑙併?BR>
2.3鎺ュ彛
鎺ュ彛鍏害錛?BR>涓嶈兘瀹炰緥鍖栨帴鍙c?BR>鎺ュ彛涓嶈兘鏈夋瀯閫犲嚱鏁版垨瀛楁銆?BR>鎺ュ彛瀹氫箟涔熶笉鍏佽鍖呭惈榪愮畻絎﹂噸杞姐?BR>鎺ュ彛瀹氫箟涓繕涓嶅厑璁稿0鏄庢垚鍛樹笂鐨勪慨楗扮銆傛帴鍙f垚鍛橀兘鏄痯ublic鐨勶紝涓嶉渶瑕乻tatic涔熶笉闇瑕乿irtual銆?BR>
鍚孞ava
鎺ュ彛鍙互褰兼緇ф壙錛屽叾鏂瑰紡鍜岀被緇ф壙鐩稿悓銆傚涓嬶細(xì)
鍛婁竴孌佃惤鍚с?nbsp; (銇ゃ仴銇?璇峰鎻愭剰瑙侊紝濡傛灉鏈変粈涔堜笉娓呮鐨勫湴鏂逛篃璇蜂綘鍐欎笅鏉ワ紝涓璧瘋皟鏌ュ挴銆?nbsp;
Java寮傚父澶勭悊鏈哄埗
keywords:
Exception,Method Inovation Stack,
闅懼害錛氬垵瀛︼紝鏄?/FONT>
寮傚父綾葷殑緇ф壙
Java寮傚父鏄痡ava紼嬪簭榪愯鏃墮亣鍒伴潪姝e父鎯呭喌鑰屽垱寤虹殑涓縐嶅璞★紝濂瑰寘瑁呬簡寮傚父鐨勪俊鎭?BR>Java寮傚父鐨勯《綰х被灝辨槸java.lang.Throwable銆傚叾緇撴瀯濡備笅錛?BR>
鍏朵腑
Error ---- JVM鐨勯敊璇紝涔熷氨鏄▼搴忔湰韜棤娉曟仮澶嶇殑涓ラ噸閿欒銆?BR>
Exception--琚▼搴忔崟鑾峰茍澶勭悊鐨勫紓甯搞?BR>
JVM鐨勬柟娉曡皟鐢ㄥ爢鏍?/STRONG>
澶у瀵逛簬Debug閮藉緢鍠滄錛屽洜涓烘瘡褰撴湁寮傚父鍑虹幇鐨勬椂鍊欙紝濂逛細(xì)鍛婅瘔浣犲摢閲屽嚭浜嗗紓甯歌皟鐢ㄥ埌搴曟槸浠涔堛傝繖鍙堟槸濡備綍瀹炵幇鐨勶紵
鍦↗VM涓嬌鐢ㄤ簡Method Inovation Stack鏈哄埗鏉ヨ窡韙瘡涓涓嚎紼嬩腑涓緋誨垪鐨勬柟娉曡皟鐢ㄨ繃紼嬨傚茍淇濆瓨鍦⊿tack閲岃竟銆?BR>Stack鐨勯《绔篃灝辨槸褰撳墠姝e湪澶勭悊鐨勬柟娉曘傚湪Debug鐨勬椂鍊欙紝JVM浼?xì)鏆傚仠琚玠ebug鐨勭嚎紼嬶紝鍏嬮殕濂圭殑Stack錛岀劧鍚庢樉紺哄嚭鏉ヤ緵
developer鎿嶄綔錛岃繖涓鐐圭敤Eclipse鐨勪漢寰堟湁浣撻獙鍚с?BR>
涓鏃﹀紓甯稿彂鐢燂紝JVM棣栧厛浠庡綋鍓嶇殑鏂規(guī)硶寮濮嬪鎵懼鐞嗙殑try/Catch錛屾壘涓嶅埌錛屽氨鍥炴湐鍒皊tack鐨勪笅涓涓紝涔熷氨鏄痯arent璋冪敤
鏂規(guī)硶銆備婦渚嬪涓嬶細(xì)
public void child(int a)throws UserException
{
if (a < 0)
throw new UserException();
}
鐖舵柟娉曞涓嬶細(xì)
public void parent(int a)
{
try
{
a = 1;
method(a);//throw Exception
}catch(UserException ue)
{
System.out.println("I get it from Child")!
ue.printExceptionStack();
}
}
灝辮繖鏍鳳紝寮傚父琚姄浣忎簡銆傚綋鐒?dòng)灱屽鏋滃湪child鏂規(guī)硶閲岃竟灝辨崟鑾鳳紝parent灝變笉鐢ㄨ繖涔堚滅瘡鈥濅簡銆?BR>
鍏跺疄鏈绱殑榪樻槸JVM錛屽ス瑕佸寮傚父鎹曡幏榪涜鏌ユ壘錛屽鏋滀竴鐩撮兘鎵句笉鍒幫紝灝辨妸寮傚父鐩存帴鎶涚粰鐢ㄦ埛錛岄偅涔堝湪緇堢涓婂氨鑳界湅
鍒頒簡銆傚鏋滄槸鎶涘嚭寮傚父鐨勭▼搴忔槸涓葷▼錛岃繕娌℃湁琚崟鑾鳳紝閭e氨鈥滄緲樼繕鈥濅簡銆傝娉ㄦ剰錛?BR>
寮傚父澶勭悊瀵規(guī)ц兘鐨勫獎(jiǎng)鍝?/STRONG>
浠庝笂杈圭殑鍘熺悊灝辮兘鐭ラ亾錛屼笉鎹曟崏寮傚父銆佹崟鎹夊紓甯哥殑浣嶇疆涓嶅悎閫傘侀兘浼?xì)瀵艰嚧JVM鎬ц兘闄嶄綆銆?BR>
(PS:鍏堣鍒拌繖閲岋紝緇х畫涓婄彮銆?