锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产亚洲一区二区三区在线观看 ,亚洲午夜电影一区二区三区,国产精品亚洲专区一区http://m.tkk7.com/soochow_hhb/category/1422.html<style> #glowtext{ filter:glow(color=green,strength=2);width:100%; } </style> <span id="glowtext"> <script language="JavaScript1.2"> var message=" 鍏鋒湁涓板瘜鐭ヨ瘑鍜岀粡楠岀殑浜猴紝姣斿彧鏈変竴縐嶇煡璇嗗拰緇忛獙鐨勪漢鏇村鏄撲駭鐢熸柊鐨勮仈鎯沖拰鐙埌鐨勮瑙c? var neonbasecolor="#FF930D" var neontextcolor="#00B3FD" var flashspeed=300 //in milliseconds var n=0 if (document.all){ document.write('<font color="'+neonbasecolor+'">') for (m=0;m<message.length;m++) document.write('<span id="neonlight" class="content">'+message.charAt(m)+'</span>') document.write('</font>') //cache reference to neonlight array var tempref=document.all.neonlight } else document.write(message) function neon(){ //Change all letters to base color if (n==0){ for (m=0;m<message.length;m++) tempref[m].style.color=neonbasecolor } //cycle through and change individual letters to neon color tempref[n].style.color=neontextcolor if (n<tempref.length-1) n++ else{ n=0 clearInterval(flashing) setTimeout("beginneon()",1500) return } } function beginneon(){ if (document.all) flashing=setInterval("neon()",flashspeed) } beginneon() </script> </span>zh-cnTue, 27 Feb 2007 11:05:55 GMTTue, 27 Feb 2007 11:05:55 GMT60jsp-java-mysql瀛楃闆嗙粺涓http://m.tkk7.com/soochow_hhb/archive/2006/11/03/78845.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Fri, 03 Nov 2006 01:03:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2006/11/03/78845.htmlhttp://m.tkk7.com/soochow_hhb/comments/78845.htmlhttp://m.tkk7.com/soochow_hhb/archive/2006/11/03/78845.html#Feedback0http://m.tkk7.com/soochow_hhb/comments/commentRss/78845.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/78845.html2銆佸湪java涓紝浠巎sp鎻愪氦榪囨潵鐨勬暟鎹槸gbk緙栫爜鐨勶紝鑰宩ava榛樿鐨勫鐞嗘柟寮忔槸浣跨敤ISO-8859-1緙栫爜錛屾墍浠ヨ嫢鍦╦ava涓兘鏄劇ずjsp鎻愪氦榪囨潵鐨刧bk緙栫爜鏂瑰紡鐨勬暟鎹紝灝辮榪涜涓涓漿鎹細灝唃bk杞崲涓篒SO-8859-1錛岃繖鏍鋒暟鎹氨鍙甯告樉紺恒?br />3銆佸鏋滆灝唈sp鎻愪氦鐨勬暟鎹粡榪噅ava鍚庡彴澶勭悊錛岀劧鍚庢斁鍏ユ暟鎹簱涓紝灝卞張澶氫簡涓涓暟鎹紪鐮佹柟寮忥細鏁版嵁搴撶殑鏁版嵁緙栫爜鏂瑰紡銆備互mysql涓轟緥錛岄粯璁ゅ瓧絎﹂泦涓簂atin錛屾墍浠ヨ嫢灝唃bk鐨勬暟鎹斁鍏ワ紝蹇呯劧鍑虹幇涔辯爜錛屾墍浠ラ鍏堝簲鏀瑰彉鏁版嵁搴撶殑緙栫爜鏂瑰紡涓篻bk銆?br />
緇間笂錛岀畝鍗曠殑璁劇疆鏂規硶濡備笅錛?br />
jsp聽(gbk)聽聽聽聽 ---->聽聽聽聽 java(ISO-8859-1)聽 -------> mysql(gbk)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 杞崲
榪欐牱璁劇疆涔嬪悗錛岃繕鏈変竴縐嶆儏鍐典細鍑虹幇涔辯爜錛氬綋浣犲湪jsp绔彁浜や竴涓猧d鍙鳳紝鐒跺悗鍦╦ava澶勭悊绔氳繃id鍙峰緱鍒版暟鎹簱涓殑gbk錛堟眽瀛楋級鏁版嵁錛岃繖鏄氨浼氬嚭鐜頒貢鐮侊紝鍥犱負java澶勭悊鐨勬槸ISO-8859-1錛屼綘鍦╦ava鍒癿ysql涓湁浜嗕竴涓狪SO-8859-1鍒癵bk鐨勮漿鎹紝鑰岃繖浜涙暟鎹湰韜氨鏄疘SO-8859-1,鎵浠ヨ漿鎹㈠悗灝卞嚭鐜伴棶棰樹簡銆?br />瑙e喅鍔炴硶錛氬皢鍦╦ava涓鐞嗙殑gbk鏁版嵁杞崲涓篒SO-8859-1鍗沖彲銆?br />
鎬諱箣錛氬湪jsp錛宩ava錛宮ysql涓夎呬箣闂寸殑緙栫爜鏂瑰紡蹇呴』緇熶竴錛屼笉鑳介敊璇殑杞崲鎴栬呬笉杞崲銆?img src ="http://m.tkk7.com/soochow_hhb/aggbug/78845.html" width = "1" height = "1" />

soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2006-11-03 09:03 鍙戣〃璇勮
]]>
IoC鐨勫垵姝ョ悊瑙?/title><link>http://m.tkk7.com/soochow_hhb/archive/2006/09/30/72966.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Sat, 30 Sep 2006 02:37:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2006/09/30/72966.html</guid><wfw:comment>http://m.tkk7.com/soochow_hhb/comments/72966.html</wfw:comment><comments>http://m.tkk7.com/soochow_hhb/archive/2006/09/30/72966.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/soochow_hhb/comments/commentRss/72966.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/soochow_hhb/services/trackbacks/72966.html</trackback:ping><description><![CDATA[ <p>濂戒箙鍐欐湁鍏砵ava鎶鏈殑鏂囩珷浜嗭紝榪欏嚑澶╁湪鍥句功棣嗙湅鍒般奡pring in Action銆嬪氨鍊熻繃鏉ラ殢鎵嬬炕緲伙紝瑙夊緱絎竴绔犵殑IoC鐨勬蹇佃鐨勫緢濂斤紝鐜板湪鏁寸悊濡備笅銆?br /><font style="BACKGROUND-COLOR: #ffffff" color="#a52a2a"><strong>錛?錛変粠綾葷殑鑰﹀悎璇磋搗<br /></strong></font>鍦ㄥ疄闄呯殑緋葷粺涓紝瑕佸涓被鍏卞悓鍗忎綔鏉ュ畬鎴愭煇涓欏逛換鍔★紝涓鑸О涓哄鍚堛傚湪緋葷粺鐨勮璁¤繃紼嬩腑錛岃﹀悎鏄笉鍙伩鍏嶇殑錛屾槸蹇呴』鐨勶紝浣嗘槸瀹冧細甯︽潵浠ヤ笅闂錛?br />錛嶏紞闅句互嫻嬭瘯錛氱湅涓嬮潰鐨勪袱涓被錛?br />KnightOfTheRoundTable<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 |<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 |聽聽new<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽V<br />聽聽聽聽聽聽聽聽 HolyGrailQuest<br />鍦↘nightOfTheRoundTable綾諱腑浣跨敤浜咹olyGrailQuest綾伙紝騫朵笖鍙兘浣跨敤涓嶅悓鐨凲uest綾匯傝繖涓や釜綾葷殑鍔熻兘鏄獞澹幓鎵ц涓嶅悓鐨勪換鍔★紝HolyGrail鍙槸浠h〃浜嗕竴縐嶄換鍔°傝繖縐嶉氳繃鍥絥ew鐨勬柟寮忥紝浣垮緱knight鍜宷uest涓や釜綾葷揣瀵嗙殑鑰﹀悎鍦ㄤ竴璧楓傝璁″畬鎴愬悗鍋氬崟鍏冩祴璇曪紝鐪嬩笅闈㈢殑浠g爜錛?br />KnightOfTheRoundTable knight = new KnightOfTheRoundTable("Bedivere");<br />HolyGrail grail = knight.embarkOnQuery();<br />assertNotNull(grail);<br />assertTrue(grail.isHoly());<br />鍦ㄦ祴璇昁nightOfTheRoundTable綾葷殑鏃跺欙紝闂存帴鐨勬祴璇曚簡HolyGrailQuest綾伙紝浣嗘槸瀵逛簬HolyGrailQuest綾葷殑鎯呭喌騫舵病鏈夊緢鏄懼紡鐨勬祴璇曪紝鎵浠ヤ嬌鐢ㄤ簡鏈鍚庣殑涓よ浠g爜鏉ユ祴璇曪紝鏄懼緱寰堢鎷欍備笉鐭ラ亾鏄惁嫻嬭瘯浜嗘墍鏈夊彲鑳界殑鎯呭喌銆?br />錛嶏紞闅句互緇存姢<br />濡傛灉浠ュ悗淇敼浜嗕唬鐮侊紝鎴栬呭鍔犱簡/鏀瑰彉浜唊night鐨勪換鍔★紝浠g爜蹇呴』鏀瑰姩錛屾祴璇曚唬鐮佷篃瑕佹敼鍔紝騫朵笖鏀瑰姩涓涓湴鏂癸紝鍙兘浼氬獎鍝嶅埌鍏朵粬寰堝鍦版柟錛屼負鏃ュ悗鐨勭淮鎶ゅ伐浣滃甫鏉ヤ簡楹葷儲<br />錛嶏紞绱ц﹀悎<br />鎻愮ず錛氳繖縐嶆ā寮忓紩璧風殑闂錛屼富瑕佹槸鍥犱負绱ц﹀悎鎵鑷達紝鎵浠ヨ瑙e喅榪欑闂鐨勯瑕佹柟妗堝氨鏄В鑰﹀悎錛屼絾濡備綍鏉ヨВ鑰﹀悎鍛紵璇風戶緇湅錛?br /><font color="#a52a2a"><strong>錛?錛夎В鑰﹀悎鈥斺旈氳繃鎺ュ彛interface鏉ュ疄鐜?br /></strong></font>鍥犱負楠戝+鍙兘鎵ц涓嶅悓鐨勪換鍔★紝涔熸湁涓嶅悓縐嶇被鐨勯獞澹紝鎵浠ユ垜浠彲浠ュ皢浠誨姟鍜岄獞澹娊璞′負鎺ュ彛錛屽皢鍏蜂綋鐨勫疄鐜伴殣钘忓湪鎺ュ彛涔嬩笅錛岃繖鏍峰氨涓嶅繀鍦╧night綾諱腑閫氳繃鏄劇ず鐨?HolyGrailQuest quest = new HolyGrailQuest ()榪欐牱鐨勮鍙ユ潵鍒涘緩Quest瀵硅薄錛岃屽彲浠ラ氳繃鎺ュ彛Quest quest 錛?new HolyGrailQuest()鏉ュ疄鐜般傝繖鏍峰氨褰㈡垚浜嗗涓嬬殑綾誨浘錛?br /><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 瀹嬩綋; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><img src="http://m.tkk7.com/images/blogjava_net/soochow_hhb/1228/r_.bmp" /></span></p> <p> <span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 瀹嬩綋; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">榪欐牱錛岃櫧鐒朵嬌鐢ㄤ簡鎺ュ彛錛屼嬌寰楀眰嬈″垎鏄庯紝閫氳繃鎺ュ彛Quest鏉ュ疄鐜版帰闄╋紝浣嗘槸榪樻槸鍙兘浠庝簨涓縐嶆帰闄╀換鍔★紝鑰屽浣曟墠鑳借楠戝+浠庝簨浠諱綍涓縐嶄換鍔″憿錛熻緇х畫鐪嬶紒<br /><font color="#a52a2a"><strong>錛?錛夌粰浜堜笌鑾峰緱</strong></font><br />楠戝+鎵ц鎺㈤櫓浠誨姟鏈変袱縐嶆柟寮忥細<br />絎竴銆佽楠戝+涓誨姩鑾峰緱鎺㈤櫓浠誨姟錛屽墠闈㈢殑瀹炵幇鏂瑰紡灞炰簬榪欑被錛岄氳繃new鏉ュ疄鐜幫紱<br />絎簩錛岃楠戝+琚姩鐨勮幏寰椾換鍔★紝鍗崇粰浜堥獞澹煇欏規帰闄╀換鍔★紝榪欐牱灝辮В鍐充簡涓婇潰鐨勯棶棰橈紙璁╅獞澹彲浠ヤ粠浜嬩換浣曚竴縐嶄換鍔★紝鍙緇欎粬浠垎閰嶅嵆鍙級銆?br />瀹為檯瀹炵幇鐨勬柟寮忓緢綆鍗曪紝鐪嬪涓嬩唬鐮侊細<br />public void setQuest(Quest quest){<br />聽聽 this.quest = quest;<br />}<br /><font color="#0000ff"><strong>綆鍗曠殑浠g爜瀹炵幇浜嗘柟寮忕殑鏀瑰彉錛岃繖鏍風粰KnightOfTheRoundTable綾諱紶鍏ヤ換浣曠殑Quest浠誨姟錛岄兘鍙互鎺ュ彈浜嗐?br />鍒拌繖閲屽彲浠ュ緢鏄庢樉鐨勭湅鍑烘潵錛屾垜浠皢浠ュ墠鐨刵ew鏂瑰紡錛岀炕杞繃鏉ワ紝鍗充笉鏄涓誨姩鑾峰緱渚濊禆綾伙紝鑰屾槸琚姩鐨勮幏寰椾緷璧栫被錛岃繖灝辨槸IoC鐨勬牳蹇冿紝瀹為檯Fowler璇村緱渚濊禆娉ㄥ叆涔熷緢璐村垏錛屽嵆鍚戠被涓滄敞鍏モ濆畠渚濊禆鐨勫叾浠栫被銆?br /></strong></font><br />濂戒簡錛屽埌榪欓噷錛屽簲璇ョ煡閬撲簡IoC鐨勫熀鏈蹇典簡鍚э紝涔熺煡閬撲簡IoC鐨勫熀鏈姛鑳戒簡鍚с?br />瑕佹兂鏇存繁鍏ョ殑浜嗚В錛岃鍏蟲敞鎴戠殑鏂囩珷銆?/span> </p> <img src ="http://m.tkk7.com/soochow_hhb/aggbug/72966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2006-09-30 10:37 <a href="http://m.tkk7.com/soochow_hhb/archive/2006/09/30/72966.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杞歡鏂版妧鏈鐨勪綔涓?http://m.tkk7.com/soochow_hhb/archive/2005/06/13/6051.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Mon, 13 Jun 2005 08:23:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2005/06/13/6051.htmlhttp://m.tkk7.com/soochow_hhb/comments/6051.htmlhttp://m.tkk7.com/soochow_hhb/archive/2005/06/13/6051.html#Feedback2http://m.tkk7.com/soochow_hhb/comments/commentRss/6051.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/6051.html
嬈㈣繋浜ゆ祦錛?A href="http://m.tkk7.com/Files/soochow_hhb/浠庡紑婧愰」鐩湅杞歡鎶鏈?rar">涓嬭澆

soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2005-06-13 16:23 鍙戣〃璇勮
]]>
浣跨敤Tiles鍜孲truts璁捐web鐣岄潰http://m.tkk7.com/soochow_hhb/archive/2005/06/13/5627.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Mon, 13 Jun 2005 08:11:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2005/06/13/5627.htmlhttp://m.tkk7.com/soochow_hhb/comments/5627.htmlhttp://m.tkk7.com/soochow_hhb/archive/2005/06/13/5627.html#Feedback1http://m.tkk7.com/soochow_hhb/comments/commentRss/5627.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/5627.html闃呰鍏ㄦ枃

soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2005-06-13 16:11 鍙戣〃璇勮
]]>
Strus甯歌閿欒鍙婂師鍥犲垎鏋?/title><link>http://m.tkk7.com/soochow_hhb/archive/2005/06/11/5905.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Sat, 11 Jun 2005 03:58:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2005/06/11/5905.html</guid><wfw:comment>http://m.tkk7.com/soochow_hhb/comments/5905.html</wfw:comment><comments>http://m.tkk7.com/soochow_hhb/archive/2005/06/11/5905.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://m.tkk7.com/soochow_hhb/comments/commentRss/5905.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/soochow_hhb/services/trackbacks/5905.html</trackback:ping><description><![CDATA[     鎽樿: 鏈瘒鏂囩珷鍖呭惈浜嗗湪鐢⊿truts寮鍙憌eb搴旂敤鏃剁粡甯哥鍒扮殑涓浜涘紓甯稿拰閿欒錛屾牴鎹紓甯告垨閿欒淇℃伅鏈韓錛岀粡甯稿彲浠ユ壘鍒版綔鍦ㄧ殑閿欒鍙戠敓鍘熷洜銆?涓嬮潰鍒楀嚭浜嗕竴浜汼truts鐨勫父瑙侀敊璇拰寮傚父錛屽茍緇欏嚭浜嗕竴浜涘彲鑳藉彂鐢熸綾婚敊璇垨寮傚父鐨勫師鍥犮傛湁鐨勫悗闈㈡湁鐩稿叧榪炴帴錛屼綘鍙互閫氳繃瀹冩壘鍒版洿澶氱殑淇℃伅銆? Cannot retrieve mapping for action 寮傚父 javax.s...  <a href='http://m.tkk7.com/soochow_hhb/archive/2005/06/11/5905.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/soochow_hhb/aggbug/5905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2005-06-11 11:58 <a href="http://m.tkk7.com/soochow_hhb/archive/2005/06/11/5905.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts vs webwork 涓枃http://m.tkk7.com/soochow_hhb/archive/2005/05/29/5311.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Sun, 29 May 2005 06:16:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2005/05/29/5311.htmlhttp://m.tkk7.com/soochow_hhb/comments/5311.htmlhttp://m.tkk7.com/soochow_hhb/archive/2005/05/29/5311.html#Feedback1http://m.tkk7.com/soochow_hhb/comments/commentRss/5311.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/5311.htmlmoxie鐨勩奧ebWork鏁欑▼錛?.90鐗堛?BR>嬈㈣繋涓璧鋒帰璁╓EB Framework銆?A href="http://m.tkk7.com/soochow_hhb/">http://m.tkk7.com/soochow_hhb/ 

鐗?/SPAN> 寰?/SPAN>

Struts1.1

WebWork2

Action綾?/SPAN>

鍦?/SPAN>Struts閲岄潰錛屾瘡涓涓?/SPAN>Action綾誨繀闇瑕佺戶鎵夸竴涓娊璞$殑綾?/SPAN>org.apache.struts.action.Action銆傝繖涓湪Java緙栫▼涓細寮曟潵涓浜涢棶棰橈紝灝辨槸鍏充簬澶氱緇ф壙鐨勯棶棰樸?/SPAN>

WebWork鐨?/SPAN>Action綾諱粎闇瑕佸疄鐜版帴鍙?/SPAN>com.opensymphony.xwork.Action錛屼篃鍙互瀹炵幇鍏跺畠鐨勬帴鍙f潵瀹炵幇鏇村鐨勫姛鑳斤紝璀錛?/SPAN>validate錛堥獙璇侊級錛?/SPAN>localware(鍥介檯鍖?/SPAN>)絳夈傚綋鐒訛紝瀹冧篃鎻愪緵浜嗕竴涓被ActionSupport闆嗘垚浜嗕笂闈㈢殑鎵鏈夊姛鑳斤紝鎴戜滑鍦ㄥ紑鍙戜腑鍙互鏍規嵁闇瑕侀夋嫨銆?/SPAN>

綰跨▼妯″瀷

Struts 鐨?/SPAN>Action蹇呴渶鏄?/SPAN>thread錛?/SPAN>safe鏂瑰紡錛屽畠浠呬粎鍏佽涓涓疄渚嬪幓澶勭悊鎵鏈夌殑璇鋒眰銆傛墍浠?/SPAN>action鐢ㄥ埌鐨勬墍鏈夌殑璧勬簮閮藉繀闇緇熶竴鍚屾錛岃繖涓氨寮曡搗浜嗙嚎紼嬪畨鍏ㄧ殑闂銆?/SPAN>

鍦?/SPAN>WebWork涓紝姣忎釜璇鋒眰瀵瑰簲涓涓?/SPAN>Action錛屽洜姝ゆ病鏈夌嚎紼嬬殑瀹夊叏闂銆傚疄闄呬笂Servlet瀹瑰櫒瀵規瘡涓姹備篃浜х敓澶氫釜瀵硅薄錛屽畠涔熸病鏈夎瘉鏄庡鎬ц兘鍜屽瀮鍦懼洖鏀朵駭鐢熷お澶氱殑褰卞搷銆?/SPAN>

Servlet鐨勪緷璧?/SPAN>

Struts澶勭悊Action鏃跺繀闇瑕佷緷璧?/SPAN>ServletRequest 鍜?/SPAN>ServletResponse錛屾墍鏈夊畠鎽嗚劚涓嶄簡Servlet瀹瑰櫒銆?/SPAN>

WebWork鐨?/SPAN>Action涓嶇敤渚濊禆Web灞傚拰鍏跺畠鐨勫鍣ㄣ傚畠鍙互閫氳繃ActionContext錛岀洿鎺ュ幓璁塊棶Request鍜?/SPAN>Response錛屼絾榪欎釜鏄彲閫夌殑錛屽彧鏈夊湪蹇呴渶鐨勮姹備笅浣跨敤銆?/SPAN>

嫻嬭瘯

Struts鐨勬瘡涓?/SPAN>Action閮藉悓Web灞傝﹀悎鍦ㄤ竴璧鳳紝榪欐牱瀹冪殑嫻嬭瘯渚濊禆浜?/SPAN>Web瀹瑰櫒錛屽崟鍏冩祴璇曚篃寰堥毦瀹炵幇銆備笉榪囨湁涓涓?/SPAN>Junit鐨勬墿灞曞伐鍏?/SPAN>Struts TestCase鍙互瀹炵幇瀹冪殑鍗曞厓嫻嬭瘯銆?/SPAN>

Webwork鐨?/SPAN>action鑳藉閫氳繃璧嬩簣涓瀹氱殑灞炴э紝灝卞彲浠ユ墽琛屽崟鍏冩祴璇曘傚悓鏃朵篃鍙互浣跨敤涓涓?/SPAN>mock鐨勫疄渚嬪幓嫻嬭瘯錛岃屼笉鏄氳繃鍚姩web瀹瑰櫒鏉ヨ繘琛屾祴璇曘?/SPAN>

FormBean

Struts瑕佹眰鏈?/SPAN>FormBean瀵瑰簲姣忎竴涓〃鍗曪紝鑰屼笖FormBean蹇呴渶緇ф壙鎶借薄綾?/SPAN>ActionForm銆傝屼嬌鐢?/SPAN>DynaBeans瀹為檯涓婃病鏈夊お澶х殑鎰忎箟銆備笉鑳藉寰堝ソ鐨勫鐞嗙幇鏈夌殑妯″瀷銆?/SPAN>

Webwork 鑳藉鍔ㄦ佺殑鏀墮泦web鐨勬暟鎹劧鍚庡啀璧嬪肩粰bean銆傚畠涔熷彲浠ヤ嬌鐢?/SPAN>FormBean鐨勫艦寮忥紝FormBean鍙互鏄櫘閫氱殑DTO鍜屽煙瀵硅薄錛屽畠涓嶇敤閲嶆柊鏍規嵁鍩熷璞℃潵鐢熸垚鏂扮殑FormBean錛屼篃涓嶉渶緇ф壙鎶借薄綾?/SPAN>ActionForm銆?/SPAN>

鍓嶇琛ㄨ揪寮忚璦

Struts闆嗘垚浜?/SPAN>JSTL錛屾墍浠ュ畠涓昏浣跨敤JSTL鐨勮〃杈懼紡璇█鏉ヨ幏鍙栨暟鎹傚彲鏄?/SPAN>JSTL鐨勮〃杈懼紡璇█鍦?/SPAN>Collection鍜岀儲寮曞睘鎬ф柟闈㈠鐞嗘樉寰楀緢寮便?/SPAN>

WebWork鐨勮〃杈懼紡璇█浣跨敤浜嗗姛鑳藉己澶х殑OGNL銆傚畠浣跨敤OGNL寤虹珛涓涓?/SPAN>OgnlValueStack鏉ユ悳绱㈡暟鎹?/SPAN>Webwork鍓嶇涔熷彲浠ヤ嬌鐢?/SPAN>JSTL錛屼絾瀹冨悓鏃舵敮鎸侊細velocity銆?/SPAN>freemaker銆?/SPAN>jspparer銆?/SPAN>xml銆?/SPAN>

綾誨瀷鐨勮漿鎹?/SPAN>

Struts鐨?/SPAN>FormBean鎶婃墍鏈夌殑鏁版嵁閮戒綔涓?/SPAN>String綾誨瀷錛屽畠鍙互浣跨敤宸ュ叿Commons-Beanutils榪涜綾誨瀷杞寲銆備絾瀹冪殑杞寲閮芥槸鍦?/SPAN>Class綰у埆錛岃屼笖杞寲鐨勭被鍨嬫槸涓嶅彲閰嶇疆鐨勩傜被鍨嬭漿鍖栨椂鐨勯敊璇俊鎭繑鍥炵粰鐢ㄦ埛涔熸槸闈炲父鍥伴毦鐨勩?/SPAN>

WebWork浣跨敤OGNL榪涜綾誨瀷杞寲錛屾彁渚涗簡鎵鏈夊熀鏈被鍨嬬殑杞寲鍔熻兘銆傜被鍨嬭漿鍖栧彲浠ョ洿鎺ュ涓涓?/SPAN>Class榪涜錛?/SPAN>Class綰у埆錛夎漿鍖栵紝涔熷彲浠ュClass鐨勫瓧孌佃繘琛岀被鍨嬭漿鍖栥傚畠浣跨敤鎷︽埅鍣ㄥ彲浠ュ緢瀹規槗鐨勫皢綾誨瀷杞寲鐨勯敊璇俊鎭繑鍥炵粰鐢ㄦ埛錛岃屼笖閿欒淇℃伅鍙互瀵瑰簲鍒頒竴涓浉搴旂殑瀛楁銆?/SPAN>

瀵?/SPAN>Action 鎵ц鍓嶅拰鍚庣殑澶勭悊

Struts澶勭悊Action鐨勬椂鍊欐槸鍩轟簬class鐨?/SPAN>hierarchies錛屽緢闅懼湪action澶勭悊鍓嶅拰鍚庤繘琛屾搷浣溿?/SPAN>

Webwork2 鍏佽鎮ㄥ鐞?/SPAN>Action鍙互閫氳繃鎷︽埅鍣紝灝辨槸鍦ㄦ瘡涓涓?/SPAN>Action澶勭悊鍓嶆垨鑰呭悗榪涜鍏跺畠鎿嶄綔銆傚畠鐨勬嫤鎴櫒鍙互鍦ㄩ厤緗枃浠朵腑鍔ㄦ佹坊鍔狅紝榪欐牱Action鍜屾嫤鎴櫒涔嬮棿瀹屽叏瑙h棔錛屾洿濂界殑瀹炵幇浜嗙粍浠跺寲銆?/SPAN>

楠岃瘉澶勭悊

Struts鐨勯獙璇佹槸璋冪敤FormBean鐨?/SPAN>validator()鏂規硶錛屽叾瀹炲氨鏄FormBean鐨勯獙璇併傚畠涓鑸嬌鐢ㄦ鏋?/SPAN>Commons Validation榪涜鏁版嵁楠岃瘉澶勭悊銆傚畠浣跨敤浜嗕竴涓叏灞鐨勯厤緗枃浠?/SPAN>validation.xml瀹氫箟浜?/SPAN>FormBean鐨勯獙璇佷俊鎭?/SPAN>Struts鐨?/SPAN>FormBean灞炴ч兘琚涓烘槸String綾誨瀷錛屾墍浠ュ畠鍦ㄩ獙璇佹椂涔熼渶瑕侀澶栫殑綾誨瀷杞寲銆?/SPAN>

WebWork浣跨敤Xwork鐨勯獙璇佹鏋惰繘琛岄獙璇佸鐞嗭紝瀹冨彲浠ラ氳繃閰嶇疆鎷︽埅鍣ㄦ潵嬋媧匯傚畠鍙互涓烘瘡涓渶瑕侀獙璇佺殑Class鎸囧畾涓涓?/SPAN>xml楠岃瘉鏂囦歡錛屼篃鍙互涓轟竴涓?/SPAN>Class鍦ㄤ笉鍚岀殑鎯呭喌鎸囧畾涓嶅悓鐨?/SPAN>xml楠岃瘉鏂囦歡銆?/SPAN>WebWork璇佸彲浠ョ粰姣忎釜Action綾繪寚瀹氬搴旂殑楠岃瘉鏂囦歡錛屼篃鍙互緇?/SPAN>Action鐨勫瓧孌靛幓鎸囧畾楠岃瘉鏂囦歡銆傞氳繃鎷︽埅鍣ㄦ潵緇勮Action鍜屽叾楠岃瘉鏂囦歡錛屼嬌瀹冧滑涔嬮棿瀹屽叏瑙h棔銆?/SPAN>

瀵?/SPAN>Action鎵ц鐨勬帶鍒?/SPAN>

Struts鍒涘緩涓涓?/SPAN>Action錛屽鏋滄兂鎺у埗瀹冪殑鎵ц欏哄簭灝嗕細闈炲父鍥伴毦銆傜敋鑷充綘瑕侀噸鏂板幓鍐?/SPAN>Servlet鏉ュ疄鐜頒綘鐨勮繖涓姛鑳介渶姹傘?/SPAN>

鍦ㄨ繖涓柟闈紝WebWork鐨勬嫤鎴櫒鏍堟彁渚涗簡寮哄ぇ鐨勫姛鑳姐?/SPAN>Action鐨勬墍鏈夊垏闈㈠姛鑳介兘鏈夋嫤鎴櫒鏉ュ疄鐜幫紙姣斿錛氬彇寰?/SPAN>request璇鋒眰鍙傛暟銆侀獙璇佸鐞嗙瓑錛夛紝榪欐牱浣犲氨鍙互鐢ㄦ嫤鎴櫒鏍堟潵緇勭粐鎷︽埅鍣ㄧ殑鎵ц欏哄簭銆備緥濡傦細浣犻渶瑕佸湪浣跨敤request璇鋒眰鍙傛暟鏉ヨ緗?/SPAN>Action灞炴т箣鍓嶏紝浣跨敤IoC妗嗘灦璁劇疆Action鐨勫睘鎬э紝鍙嶄箣宸茬劧銆傝繖鏃訛紝浣犲氨鍙互涓?/SPAN>package鎴?/SPAN>Action鎸囧畾涓涓嫤鎴櫒鏍堟潵瀹炵幇銆?/SPAN>



soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2005-05-29 14:16 鍙戣〃璇勮
]]>
Sturts vs WebWorkhttp://m.tkk7.com/soochow_hhb/archive/2005/05/27/5267.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Fri, 27 May 2005 06:38:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2005/05/27/5267.htmlhttp://m.tkk7.com/soochow_hhb/comments/5267.htmlhttp://m.tkk7.com/soochow_hhb/archive/2005/05/27/5267.html#Feedback0http://m.tkk7.com/soochow_hhb/comments/commentRss/5267.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/5267.htmlhttp://www.opensymphony.com/webwork/wikidocs/Comparison%20to%20Struts.html緗戠珯瀵筍truts鍜學ebWork鐨勬瘮杈冦?BR>

Feature

Struts

WebWork 1.x

WebWork 2.x

Action classes

Struts requires Action classes to extend an Abstract base class. This shows a common problem in Struts of programming to abstract classes instead of interfaces.

Action classes must implement the webwork.Action Interface. There are other Interfaces which can be implemented for other services, such as storing error messages, getting localized texts, etc. The ActionSupport class implements many of these Interfaces and can act as a base class. WebWork is all written to Interfaces, which allows for plugging in your own implementations.

An Action must implement the com.opensymphony.xwork.Action Interface, with a series of other Interfaces for other services, like in WebWork 1.x. WebWork2 has its own ActionSupport to implement these Interfaces.

Threading Model

Struts Actions must be thread-safe because there will only be one instance to handle all requests. This places restrictions on what can be done with Struts Actions as any resources held must be thread-safe or access to them must be synchronized.

WebWork Actions are instantiated for each request, so there are no thread-safety issues. In practice, Servlet containers generate many throw-away objects per request, and one more Object does not prove to be a problem for performance or garbage collection.

ditto

Servlet Dependency

Struts Actions have dependencies on Servlets because they get the ServletRequest and ServletResponse (not HttpServletRequest and HttpServletResponse, I've been told) when they are executed. This tie to Servlets (although not Http*) is a defacto tie to a Servlet container, which is an unneeded dependency. Servlets may be used outside a Web context, but it's not a good fit for JMS, for instance.

WebWork Actions are not tied to the web or any container. WebWork actions CAN choose to access the request and response from the ActionContext, but it is not required and should be done only when ABSOLUTELY neccessary to avoid tieing code to the Web.

ditto

Testability

Many strategies have sprung up around testing Struts applications, but the major hurdle is the fact that Struts Actions are so tightly tied to the web (receiving a Request and Response object). This often leads people to test Struts Actions inside a container, which is both slow and NOT UNIT TESTING. There is a Junit extension : Struts TestCase (http://strutstestcase.sourceforge.net/)

WebWork actions can be tested by instantiating your action, setting the properties, and executing them

ditto, but the emphasis on Inversion of Control makes testing even simpler, as you can just set a Mock implementation of your services into your Action for testing, instead of having to set up service registries or static singletons

FormBeans

Struts requires the use of FormBeans for every form, necessitating either a lot of extra classes or the use of DynaBeans, which are really just a workaround for the limitation of requiring FormBeans

WebWork 1.x allows you to have all of your properties directly accessible on your Action as regular Javabeans properties, including rich Object types which can have their own properties which can be accessed from the web page. WebWork also allows the FormBean pattern, as discussed in "WW1:Populate Form Bean and access its value"

WebWork 2 allows the same features as WebWork 1, but adds ModelDriven Actions, which allow you to have a rich Object type or domain object as your form bean, with its properties directly accessible to the web page, rather than accessing them as sub-properties of a property of the Action.

Expression Language

Struts 1.1 integrates with JSTL, so it uses the JSTL EL. This EL has basic object graph traversal, but relatively weak collection and indexed property support.

WebWork 1.x has its own Expression language which is built for accessing the ValueStack. Collection and indexed property support are basic but good. WebWork can also be made to work directly with JSTL using the Filter described in WW1:Using JSTL seamlessly with WebWork

WebWork 2 uses XW:Ognl which is a VERY powerful expression language, with additions for accessing the value stack. Ognl supports very powerful collection and indexed property support. Ognl also supports powerful features like projections (calling the same method on each member of a collection and building a new collection of the results), selections (filtering a collection with a selector expression to return a subset), list construction, and lambda expressions (simple functions which can be reused). Ognl also allows access to static methods, static fields, and constructors of classes. WebWork2 may also use JSTL as mentioned in WW1:Using JSTL seamlessly with WebWork

Binding values into views

Struts uses the standard JSP mechanism for binding objects into the page context for access, which tightly couples your view to the form beans being rendered

WebWork sets up a ValueStack which the WebWork taglibs access to dynamically find values very flexibly without tightly coupling your view to the types it is rendering. This allows you to reuse views across a range of types which have the same properties.

ditto

Type Conversion

Struts FormBeans properties are usually all Strings. Struts uses Commons-Beanutils for type conversion. Converters are per-class, and not configurable per instance. Getting a meaningful type conversion error out and displaying it to the user can be difficult.

WebWork 1.x uses PropertyEditors for type conversion. PropertyEditors are per type and not settable per Action, but field error messages are added to the field error map in the Action to be automatically displayed to the user with the field.

WebWork2 uses Ognl for type conversion with added converters provided for all basic types. Type converters default to these converters, but type conversion can be specified per field per class. Type conversion errors also have a default error message but can be set per field per class using the localization mechanism in WW2 and will be set into the field error messages of the Action.

Modular Before & After Processing

Class hierarchies of base Actions must be built up to do processing before and after delegating to the Action classes, which can lead deep class hierarchies and limitations due to the inability to have multiple inheritance WW:Comparison to Struts#1

Class hierarchies

WebWork 2 allows you to modularize before and after processing in Interceptors. Interceptors can be applied dynamically via the configuration without any coupling between the Action classes and the Interceptors.

Validation

Struts calls validate() on the FormBean. Struts users often use Commons Validation for validation. I don't know a lot about this, so I'll put some questions here:
 
Because FormBean properties are usually Strings, some types of validations must either be duplicated (checking type conversion) or cannot be done?
 
Can Commons Validation have different validation contexts for the same class? (I've been told yes, so that's a good thing)
 
Can Commons Validation chain to validations on sub-objects, using the validations defined for that object properties class?

WebWork1.x calls the validate() method on Actions, which can either do programmatic validations or call an outside validation framework (this is apparently the same as Struts)

WebWork2 can use the validate() method of WebWork and Struts and / or use the XW:Validation Framework, which is activated using an XWork Interceptor. The Xwork Validation Framework allows you to define validations in an XML format with default validations for a class and custom validations added for different validation contexts. The Xwork Validation Framework is enabled via an Interceptor and is therefore completely decoupled from your Action class. The Xwork Validation Framework also allows you to chain the validation process down into sub-properties using the VisitorFieldValidator which will use the validations defined for the properties class type and the validation context.

Control Of Action Execution

As far as I know Struts sets up the Action object for you, and you have very little control over the order of operations. To change them I think you need to write your own Servlet to handle dispatching as you want

The ActionFactory chain controls the order in which an Action is constructed and initialised, but this requires writing a class

The interceptor stacks in WebWork 2 are hugely powerful in this regard. All aspects of Action setup have been moved into Interceptor implementations (ie setting paramters from the web, validation etc), so you can control on a per action basis the order in which they are performed. For example you might want your IOC framework to setup the action before the parameters are set from the request or vice versa - you can thusly control this on a per package or per action basis with interceptor stacks.



soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2005-05-27 14:38 鍙戣〃璇勮
]]>
鐩墠嫻佽Web Framework姣旇緝鍜屾濊?/title><link>http://m.tkk7.com/soochow_hhb/archive/2005/05/27/5257.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Fri, 27 May 2005 03:18:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2005/05/27/5257.html</guid><wfw:comment>http://m.tkk7.com/soochow_hhb/comments/5257.html</wfw:comment><comments>http://m.tkk7.com/soochow_hhb/archive/2005/05/27/5257.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/soochow_hhb/comments/commentRss/5257.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/soochow_hhb/services/trackbacks/5257.html</trackback:ping><description><![CDATA[<P align=left>浠庡浗澶栫綉绔欎笂鐪嬪埌涓綃囨枃绔狅紝杞彂榪囨潵錛岄檮綆鍗曟敞瑙c傚師鏂囧湪<A >http://raibledesigns.com/page/rd/sunsets?catname=%2FJava</A> <BR>I updated my Web Framework Comparison presentation today. Rather than updating the graph that shows today's job availability, I did one that compares today to 6 months ago. Struts is still the clear winner (and growing). Spring is definitely growing. Tapestry has about the same amount of jobs (9 vs. 8). WebWork lost 10 opening (down to 4) and the demand for JSF skills has grown as well.<BR><BR><FONT style="BACKGROUND-COLOR: #ffa500"><FONT style="BACKGROUND-COLOR: #ffffff" color=#0000ff>Struts鏄庢樉鏄渶澶х殑璧㈠錛屽茍涓旀寔緇闀匡紝Spring鏄庢樉鐨勬湁鎵澧為暱錛孴spestry鍩烘湰鎸佸鉤錛學ebWorks涓嬮檷鍒?錛孞SF鐨勯渶姹傛湁鎵澧為暱銆?/FONT></FONT><BR minmax_bound="true"><BR minmax_bound="true">Is WebWork a dying framework? I've heard folks complain about its small community, and there <EM minmax_bound="true">still</EM> <SPAN style="TEXT-DECORATION: line-through" minmax_bound="true">aren't any books</SPAN> is only <A minmax_bound="true"><STRONG><FONT color=#cc3300>one book</FONT></STRONG></A> about it. <EM minmax_bound="true">Is that a jab at Patrick, Jason and Kris - or a jab at Manning? I'm not sure.</EM> <IMG class=smiley title=;-) alt=;-) src="http://raibledesigns.com/images/smileys/wink.gif" minmax_bound="true"> The good news is <A minmax_bound="true"><STRONG><FONT color=#cc3300>WebWork in Action</FONT></STRONG></A> and <A minmax_bound="true"><STRONG><FONT color=#cc3300>WebWork Live</FONT></STRONG></A> should both be out this summer.<BR><BR><BR></P> <P align=center><IMG height=394 alt=o_webframeworkjobs-May2005.gif src="http://m.tkk7.com/images/blogjava_net/soochow_hhb/1228/o_webframeworkjobs-May2005.gif" width=572 border=0></P> <P align=left><BR></P> <P minmax_bound="true">My search criteria for all of these was "<EM minmax_bound="true">framework</EM> and java" from the front page on <A minmax_bound="true"><STRONG><FONT color=#cc3300>dice.com</FONT></STRONG></A>. I did filter a bunch out for WebWork b/c there's some product called "WebWorks" that folks want to hire for. <BR minmax_bound="true"><BR minmax_bound="true">In my own experience, these numbers are not as accurate as you might think. Since I gave my original presentation, I've been contacted a number of times to work on projects. It's about even between Struts, Spring MVC, WebWork and JSF. I haven't had a single inquiry to do Tapestry development. The bad part about Struts jobs is there's so many of them, that rates are likely pretty low (i.e. 35-45/hour), whereas the others can get you upwards of 80-90/hour. <BR><FONT style="BACKGROUND-COLOR: #ffa500" color=#0000ff><FONT style="BACKGROUND-COLOR: #ffffff">渚濇垜涓漢鐨勭粡楠岋紝榪欎簺鏁板瓧涓嶄竴瀹氬氨寰堝噯紜?鑷粠鎴戝彂琛ㄧ涓綃囦粙緇嶄互鏉ワ紝鎴戝凡緇忓湪欏圭洰涓嬌鐢ㄤ簡濂藉嬈★紝鍖呮嫭Struts, Spring MVC錛?WebWorks 鍜孞SF錛?鎴戣繕娌℃湁鍋歍apestry寮鍙戙?Struts涓嶅ソ鐨勬柟闈㈠氨鏄お澶氫簡錛屽叾宸ヨ祫鍙兘紼嶅井浣庝竴鐐癸紙35/45/hour) ,鑰岀敤鍏朵粬妗嗘灦鑳戒嬌浣犳彁楂樺埌80-90/hour銆?/FONT>     <STRONG> <BR></STRONG></FONT><BR>So what do these numbers mean? Do they mean you should tailor your learnings and skills to the most popular frameworks? In a sense, it's important to do so. If nothing else, Struts skills are import so you can migrate all the Struts applications to your favorite framework. However, I don't think these numbers are that important when choosing a framework to start your project with. I think the most important thing in choosing a framework is <EM minmax_bound="true">passion</EM>. Which one do you want to work with the most? It's likely that your productivity will be higher if you're enthusiastic about the framework, rather than bored with all the skills you've accumulated using it. Then again, if you're motivated by productivity more than enthusiasm - using your skills to crank out applications quickly is probably a good idea. <BR><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #ffa500"><FONT style="BACKGROUND-COLOR: #ffffff">閭d箞榪欎簺鏁板瓧鎰忓懗鐫鎴戜滑搴旇鍋氫粈涔堝憿錛熸槸涓嶆槸鎰忓懗鐫搴旇瀛︿範閭d簺鏈嫻佽鐨勬鏋訛紵涔嶇溂鐪嬫潵錛岃繖鏍峰仛鏄緢閲嶈鐨勩?濡傛灉娌℃湁鍒殑錛孲truts鏄緢閲嶈鐨勶紝騫朵笖浣犲彲浠ュ皢浣犳墍鏈夌殑Struts搴旂敤榪佺Щ鍒頒綘閽熺埍鐨勬鏋朵腑銆備笉榪囷紝鎴戣涓鴻繖浜涙暟瀛楀浣犻夋嫨涓縐嶆鏋跺紑濮嬩綘鐨勯」鐩潵璇翠笉鏄噸瑕佺殑銆傛垜鎯沖湪閫夋嫨涓縐嶆鏋舵椂鏈閲嶈鐨勬槸passion錛堟縺鎯咃級銆備綘鏈鎯充嬌鐢ㄥ摢涓涓鏋跺伐浣滃憿錛熸垨璁稿鏋滀綘瀵逛竴涓鏋跺緢鐑儏錛屼綘鐨勭敓浜у姏灝嗚幏寰楁瀬澶х殑鎻愰珮錛岃屼笉鏄箯鍛崇殑浣跨敤宸茬粡縐瘡鐨勬妧鏈?鍙﹀錛屽鏋滀綘鐢變簬鐢熶駭鍔涙帹鍔ㄨ屼笉鏄縺鎯咃紝閭d箞榪愮敤浣犲凡縐瘡鐨勬妧鏈幓瀹屾垚欏圭洰鍙兘鏄竴涓ソ涓繪剰銆?/FONT></FONT></FONT></P> <P minmax_bound="true">You might think that the number of skilled developers for framework X is important too. I don't think it is. I think the most important thing is to hire <EM minmax_bound="true">smart developers</EM>. A good developer can come up to speed on <EM minmax_bound="true">any</EM> framework in 2 weeks and be highly productive in 4 weeks. If not, the developer isn't that smart or the framework isn't that good. <IMG class=smiley title=;-) alt=;-) src="http://raibledesigns.com/images/smileys/wink.gif" minmax_bound="true"> <BR><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #ffffff">浣犲彲鑳借涓烘煇涓鏋舵湁緇忛獙鐨勫紑鍙戣呯殑鏁伴噺涔熷緢閲嶈錛屾垜涓嶈繖涔堣涓猴紝鎴戣涓烘渶閲嶈鐨勪簨鎯呮槸闆囩敤綺炬槑鐨勫紑鍙戣呫備竴涓ソ鐨勫紑鍙戜漢鍛樿兘鍦ㄤ袱鍛ㄦ椂闂村唴浣跨敤浠諱綍妗嗘灦錛屽茍涓斿湪鍥涘懆鏃墮棿鍐呰兘鐔熺粌榪愮敤銆?濡傛灉涓嶆槸榪欐牱鐨勮瘽錛?榪欎釜寮鍙戜漢鍛樺氨涓嶆槸綺炬槑鐨勫紑鍙戣咃紝 鎴栬呰繖涓鏋朵笉鏄紭縐鐨勩?/FONT><BR></FONT><BR>Just for kicks, I did some searching for other web frameworks as well:</P> <UL class=glassList minmax_bound="true"> <LI minmax_bound="true">Rife: 0 <LI minmax_bound="true">Wicket: 0 <LI minmax_bound="true">Echo: 3 <LI minmax_bound="true">Ruby on Rails: 1 <LI minmax_bound="true">ASP .NET: 2876 </LI></UL> <P minmax_bound="true">Now the question is - what kind of rates are these skills getting? I'd like to know what the average Rails and ASP .NET developers make. In Denver, Java developers seem to make between 65-85/hour when they're experienced contractors</P><img src ="http://m.tkk7.com/soochow_hhb/aggbug/5257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2005-05-27 11:18 <a href="http://m.tkk7.com/soochow_hhb/archive/2005/05/27/5257.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts瀛︿範蹇冨緱涔婼truts嫻佺▼綃囷紙3錛?錛嶇ず渚?緇?/title><link>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts31.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Thu, 19 May 2005 02:57:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts31.html</guid><wfw:comment>http://m.tkk7.com/soochow_hhb/comments/4857.html</wfw:comment><comments>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts31.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/soochow_hhb/comments/commentRss/4857.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/soochow_hhb/services/trackbacks/4857.html</trackback:ping><description><![CDATA[     鎽樿:      絎簩姝ワ細瀹炵幇controller銆傚湪Struts涓戶鎵胯嚜Action銆傝皟鐢∕odel錛屽疄鐜版暟鎹殑娣卞眰嬈℃楠岋紙email鏄惁瀛樺湪錛夊拰鏁版嵁鐨勬彃鍏ワ紝紼嬪簭鐨勮煩杞瓑銆備唬鐮佸涓嬶細SignAction.java  1/**//** 2 * @author han 3 * soo...  <a href='http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts31.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/soochow_hhb/aggbug/4857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2005-05-19 10:57 <a href="http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts31.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts瀛︿範蹇冨緱涔婼truts嫻佺▼綃囷紙3錛?錛嶇ず渚?/title><link>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts3.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Thu, 19 May 2005 02:31:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts3.html</guid><wfw:comment>http://m.tkk7.com/soochow_hhb/comments/4841.html</wfw:comment><comments>http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts3.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/soochow_hhb/comments/commentRss/4841.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/soochow_hhb/services/trackbacks/4841.html</trackback:ping><description><![CDATA[     鎽樿: 鏈枃閫氳繃涓涓疄渚嬧斺旂敤鎴鋒敞鍐屸斺旀潵璇存槑Struts璁劇疆鐨勪竴鑸祦紼嬪拰鏂規硶錛屼腑闂磋璁″埌Struts鐨勯敊璇鐞嗭紝璧勬簮鏂囦歡浣跨敤鍜屾寔涔呭寲宸ュ叿Hibernate鐨勪嬌鐢紝榪欎簺淇℃伅閮藉彲浠ヤ粠鏈琤log涓壘鍒般? 鏂囩珷鏈変竴涓嬪嚑涓儴鍒嗙粍鎴愶細錛?錛夊疄渚嬩粙緇嶏紱 錛?錛?涓嶄嬌鐢∕VC妯″紡錛涳紙3錛変嬌鐢∕VC妯″紡錛涳紙4錛変嬌鐢⊿truts瀹炵幇鐢ㄦ埛娉ㄥ唽鐨勮繃紼嬨?nbsp; <a href='http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts3.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/soochow_hhb/aggbug/4841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2005-05-19 10:31 <a href="http://m.tkk7.com/soochow_hhb/archive/2005/05/19/struts3.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts瀛︿範蹇冨緱涔婼truts嫻佺▼綃囷紙2錛?http://m.tkk7.com/soochow_hhb/archive/2005/05/03/struts2.htmlsoochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟Tue, 03 May 2005 01:35:00 GMThttp://m.tkk7.com/soochow_hhb/archive/2005/05/03/struts2.htmlhttp://m.tkk7.com/soochow_hhb/comments/3996.htmlhttp://m.tkk7.com/soochow_hhb/archive/2005/05/03/struts2.html#Feedback2http://m.tkk7.com/soochow_hhb/comments/commentRss/3996.htmlhttp://m.tkk7.com/soochow_hhb/services/trackbacks/3996.html錛?錛塗omcat鐨勫惎鍔ㄣ?BR>        浠庝笂涓鑺傜殑Tomcat鐨勯厤緗枃浠朵腑錛屾垜浠彲浠ョ湅鍒板叧浜嶴truts鐨勯厤緗紝褰揟omcat鍚姩鏃訛紝浼氬姞杞絊truts鐨勯厤緗枃浠秙truts-config.xml錛屽叧浜庨厤緗枃浠剁殑鍐呭璇瘋
 錛?錛塉SP/JavaBean寮鍙慦eb搴旂敤
     鍦╝sp鐨勬椂浠o紝鎴戜滑榪樻病鏈夎璁轟粈涔堝紑鍙戞ā寮忥紝涔熸病鏈夐【鍙奙VC錛堣櫧鐒禡VC鐨勬蹇墊棭宸插嚭鐜幫級銆傜敤asp寮鍙戜笉澶栦箮浠ヤ笅涓ょ鎯呭喌錛屼竴銆佸氨鏄洿鎺ュ皢浠g爜闆嗘垚鍒癮sp鏂囦歡涓紝緇忛獙澶氱殑璇濓紝浼氬皢甯哥敤鐨勫嚱鏁版斁鑷充竴璧鳳紝寮曠敤鏃跺彧闇include鍗沖彲錛涗簩銆佸浜庡鏉傜殑搴旂敤錛屽鏂囦歡涓婁紶絳夛紝鎴戜滑浼氱敤鍏朵粬璇煶濡俈B銆丏elphi絳夊啓涓涓帶浠訛紙ADO鍗沖睘浜庢綾伙級銆?BR>     褰搄ava嫻佽錛孞SP閫愭笎鎴愮啛錛屼篃姝f槸妯″紡銆佹鏋舵祦琛岀殑鏃朵唬錛屾墍浠ユ垜浠笉綆℃槸鐪媕ava鐨勭被搴擄紝榪樻槸鐪嬬幇鍦ㄦ祦琛岀殑妗嗘灦錛屾棤涓娌℃湁妯″紡鐨勫瓨鍦ㄣ傚綋浣犲垵鎺ヨЕJSP鐨勬椂鍊欙紝灝卞彲浠ョ湅鍒頒功涓婅鈥滃敖閲忓皯鐨勫湪jsp涓彃鍏ava浠g爜鈥濓紝榪欏彞璇濆凡鏄ā寮忚繍鐢ㄧ殑绔?BR>      涓嬮潰鎴戜滑鍏堜笉綆VC錛屽厛浠嶫SP/JavaBean鏉ョ湅Web鐨勫紑鍙戙傝繖縐嶆ā寮忓緢鎯充笂闈㈡彁鍒扮殑asp寮鍙戠殑絎簩縐嶆儏鍐碉紝鎴戜滑灝嗕笟鍔¢昏緫鏀懼埌JavaBean涓紝鍙敤JSP鍘昏〃紺洪〉闈€?BR>       鏈夎繃asp緇忛獙閮界煡閬擄紝鍦ㄦ帴鏀惰〃鍗曟暟鎹殑鏃跺欙紝鎴戜滑涓嶅緱涓嶄竴涓竴涓皢鏁版嵁鎺ユ敹榪囨潵錛屼互鑷充簬鏈夊緢闀跨殑涓孌靛錛欳ustomId 錛?request("CustomId")鐨勪唬鐮併傝屽湪JSP涓紝鎴戜滑涓嶇敤榪欎箞綣佺悙錛屼竴涓垜浠彲浠ョ敤EL鐩存帴琛ㄧず鍗沖彲錛屽彟澶栨垜浠彲浠ュ埄鐢╦avaBean鐨刬ntrospection鏈哄埗銆傜洿鎺ュ皢琛ㄥ崟鐨勬暟鎹槧灝勫埌javabean鐨刾rivate鍙橀噺涓紝褰撶劧javabean涓繀欏誨寘鍚玤etter鍜宻etter鍑芥暟錛堟湁寰堝垢榪愶紝寰堝鐨勫紑鍙戝伐鍏峰彲浠ヨ嚜鍔ㄧ敓鎴愶紝鍙堝噺灝戜簡宸ヤ綔閲忥級銆備笅闈㈡槸涓涓ず渚嬨?BR>       
<jsp:useBean id="prof" scope="page" class="register.Profile" />
<jsp:setProperty name="prof" property="*" />
       鎴戜滑鍙琛ㄥ崟鐨刟ction欏甸潰涓紝鐩存帴鎻掑叆浠ヤ笂浠g爜錛堣繖浜涗唬鐮佸氨涓嶇敤瑙i噴浜嗗惂錛夛紝灝卞彲浠ュ皢琛ㄥ崟涓殑鏁版嵁鏄犲皠鍒皉egister.Profile榪欎釜javabean涓紝鎵浠ユ垜浠彲浠ュ湪javabean涓疄鐜頒笟鍔¢昏緫錛岃濡傛暟鎹殑鎻掑叆銆佷慨鏀廣佸垹闄ょ瓑銆備粠鑰屽彲浠ュ噺灝忕敋鑷蟲秷闄SP涓殑java浠g爜閲忋?BR> 錛?錛塎VC妯″紡
     涓婇潰鎻愬埌鐨凧SP/JavaBean涓嶮VC妯″紡寰堟帴榪戯紝浣嗘槸榪樻湁寰堝宸埆銆傚墠鑰咃紝鎴戜滑鍙互鐪嬪嚭錛屽湪javabean涓湁寰堝鐨勯昏緫浠g爜錛屾垜浠鎺у埗欏甸潰鐨勮煩杞紝榪樻槸瑕佸湪JSP涓鍙杍avabean涓殑鏌愪簺鏍囧織錛屽祵鍏ava浠g爜鏉ュ疄鐜幫紝榪欑湅璧鋒潵鏄懼緱鏈変簺絎ㄦ嫏銆傛垜浠槸鍚﹁兘鍦↗SP鍜宩avabean涓啀鍔犱竴灞傦紝涓撻棬鏉ュ疄鐜拌煩杞嵆鎺у埗欏甸潰鐨勮緭鍑哄憿錛無f course錛岃繖灝辨槸MVC鐨勬濇兂銆?BR>      Struts灝辨槸涓涓疄鐜癕VC妯″紡鐨刉EB寮鍙戞鏋訛紝鍦⊿truts涓敤JSP浣滀負Viewer錛宩avabean緇ф壙鑷狝ctionForm鏉ユ槧灝凧SP琛ㄥ崟鏁版嵁錛岀敤緇ф壙鑷狝ction鐨勭被鏉ュ疄鐜癈ontroller錛岃孧odel娌℃湁鐗規畩瀹氫箟錛屽畠鍙互鏄疎JB錛屾櫘閫欱ean鎴栬匴eb鏈嶅姟錛屾諱箣Model涓泦鎴愪簡涓氬姟閫昏緫鐨勫疄鐜幫紝鍦–ontroller涓幓璋冪敤錛屽畬鎴愬悗Controller鎺у埗鏄劇ず欏甸潰錛坖sp鏂囦歡錛夈?BR>     榪欐牱涓鏉ワ紝鏄笉鏄笟鍔℃祦紼嬮潪甯哥殑娓呮櫚錛?BR>
     涓嬮潰鎴戜滑浠樿瀹炶返錛屽疄鐜頒竴涓敤鎴鋒敞鍐岀殑綆鍗曞疄渚嬶紒


soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟 2005-05-03 09:35 鍙戣〃璇勮
]]>
Struts瀛︿範蹇冨緱涔婼truts嫻佺▼綃囷紙1錛?/title><link>http://m.tkk7.com/soochow_hhb/archive/2005/05/02/stucts1.html</link><dc:creator>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</dc:creator><author>soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</author><pubDate>Mon, 02 May 2005 12:00:00 GMT</pubDate><guid>http://m.tkk7.com/soochow_hhb/archive/2005/05/02/stucts1.html</guid><description><![CDATA[     鎽樿: 鍒氭帴瑙truts錛屽垰鎺ヨЕMVC鏋舵瀯錛屾垨鑰呭垰鎺ヨЕ浠諱綍鏂頒笢瑗匡紝鎴戣寰楅鍏堣鎼炴竻妤氭祦紼嬶紝瑕佸鏂頒簨鐗╂湁涓涓ぇ姒傜殑銆佹諱綋鐨勮璇嗭紝鍏堟湁鎰熸ц璇嗭紝鍏堝煿鍏昏搗鏉ュ叴瓚f槸闈炲父閲嶈鐨勩備笅闈㈠氨鎶婃垜瀛︿範Struts鐨勬諱綋涓氬姟嫻佺▼閫氳繃涓涓疄渚嬫潵榪涜姒傛嫭錛屾湁浠涔堥敊璇拰涓嶅Ε涔嬪錛岃浣犲彂琛ㄨ瘎璁烘寚鏁欙紒   <a href='http://m.tkk7.com/soochow_hhb/archive/2005/05/02/stucts1.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/soochow_hhb/aggbug/3992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/soochow_hhb/" target="_blank">soochow_hhb 浠ava璁烘垚璐?浠ユ灦鏋勮鑻遍泟</a> 2005-05-02 20:00 <a href="http://m.tkk7.com/soochow_hhb/archive/2005/05/02/stucts1.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://bnb989.com" target="_blank">羞羞视频免费网站日本</a>| <a href="http://xyzch.com" target="_blank">国产日本一线在线观看免费</a>| <a href="http://kaixininvestment.com" target="_blank">亚洲精品国产精品乱码不卡</a>| <a href="http://bohaolg.com" target="_blank">巨胸喷奶水视频www免费视频</a>| <a href="http://eldadhagar.com" target="_blank">亚洲国产成人精品无码区在线观看 </a>| <a href="http://xsjxp.com" target="_blank">亚洲高清偷拍一区二区三区</a>| <a href="http://bjfljg.com" target="_blank">精品视频一区二区三区免费</a>| <a href="http://3atv3523.com" target="_blank">亚洲六月丁香六月婷婷色伊人</a>| <a href="http://928288.com" target="_blank">日韩成全视频观看免费观看高清</a>| <a href="http://22222xxx.com" target="_blank">国产亚洲美女精品久久久久</a>| <a href="http://bjqhkf.com" target="_blank">亚洲国产精品久久66</a>| <a href="http://5gz0z.com" target="_blank">国产日产成人免费视频在线观看</a>| <a href="http://jdvgo.com" target="_blank">成全高清在线观看免费</a>| <a href="http://goeqq.com" target="_blank">在线亚洲高清揄拍自拍一品区</a>| <a href="http://www-36664.com" target="_blank">亚洲精品动漫人成3d在线</a>| <a href="http://6123fa.com" target="_blank">91短视频免费在线观看</a>| <a href="http://ur5r2kr.com" target="_blank">免费看美女午夜大片</a>| <a href="http://www-60060.com" target="_blank">亚洲毛片无码专区亚洲乱</a>| <a href="http://www44xixi.com" target="_blank">免费在线视频一区</a>| <a href="http://wuaiav.com" target="_blank">中文毛片无遮挡高潮免费</a>| <a href="http://abc17171.com" target="_blank">精品熟女少妇aⅴ免费久久</a>| <a href="http://xhm33.com" target="_blank">亚洲欧洲日韩极速播放</a>| <a href="http://lh726.com" target="_blank">日本亚洲成高清一区二区三区</a>| <a href="http://9522952.com" target="_blank">午夜一级毛片免费视频</a>| <a href="http://cnepu.com" target="_blank">久久久久久影院久久久久免费精品国产小说 </a>| <a href="http://xsdggzs.com" target="_blank">免费播放美女一级毛片</a>| <a href="http://225ck.com" target="_blank">亚洲视频中文字幕在线</a>| <a href="http://14743592.com" target="_blank">亚洲日韩涩涩成人午夜私人影院</a>| <a href="http://jcmy5188.com" target="_blank">7m凹凸精品分类大全免费</a>| <a href="http://syeyo.com" target="_blank">黄色一级毛片免费</a>| <a href="http://www-554949.com" target="_blank">亚洲免费电影网站</a>| <a href="http://jmdehong.com" target="_blank">亚洲AV无码欧洲AV无码网站</a>| <a href="http://42329c.com" target="_blank">国产一区二区三区在线观看免费</a>| <a href="http://xin-matai.com" target="_blank">1000部夫妻午夜免费 </a>| <a href="http://499k.com" target="_blank">3d成人免费动漫在线观看</a>| <a href="http://wwwav888.com" target="_blank">无码亚洲成a人在线观看</a>| <a href="http://ninggelang.com" target="_blank">久久精品国产精品亚洲毛片</a>| <a href="http://youketech.com" target="_blank">91麻豆精品国产自产在线观看亚洲 </a>| <a href="http://chiyizi.com" target="_blank">久久乐国产精品亚洲综合</a>| <a href="http://shelaoban.com" target="_blank">毛片A级毛片免费播放</a>| <a href="http://ax445.com" target="_blank">精品福利一区二区三区免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>