6銆?鏁版嵁璁塊棶瀵硅薄
鏁版嵁璁塊棶瀵硅薄(data access object錛孌AO)妯″紡灝嗘暟鎹闂€昏緫鎶借薄涓虹壒孌婄殑璧勬簮錛屼篃灝辨槸璇村皢緋葷粺璧勬簮鐨勬帴鍙d粠鍏跺簳灞傝闂満鍒朵腑闅旂鍑烘潵錛涢€氳繃灝嗘暟鎹闂殑璋冪敤鎵撳寘錛屾暟鎹闂璞″彲浠ヤ績榪涘浜庝笉鍚屾暟鎹簱綾誨瀷鍜屾ā寮忕殑鏁版嵁璁塊棶銆?/P>
榪欑妯″紡鍑虹幇鐨勮儗鏅湪浜庢暟鎹闂殑閫昏緫鏋佸ぇ紼嬪害涓婂彇鍐充簬鏁版嵁瀛樺偍鐨勬牸寮忥紝姣斿璇村叧緋誨瀷鏁版嵁搴撱€侀潰鍚戝璞℃暟鎹簱銆佺鐩樻枃浠剁瓑銆?/P>
鐩墠澶ч儴鍒嗙殑J2EE搴旂敤紼嬪簭閮介渶瑕佸湪涓€瀹氱▼搴︿笂浣跨敤鍙寔涔呮€х殑鏁版嵁錛岃€屽疄鐜版寔涔呮€ф暟鎹殑鏂規硶鍥犲簲鐢ㄧ▼搴忎笉鍚岃€屽紓錛屽茍涓旇闂笉鍚屽瓨鍌ㄦ牸寮忔暟鎹殑搴旂敤紼嬪簭鎺ュ彛(API)涔熸湁鐫€鏄捐憲鐨勫樊鍒紱鏈夌殑鏃跺€欙紝搴旂敤紼嬪簭榪樹細璁塊棶瀛樺偍鍦ㄤ笉鍚屾搷浣滃鉤鍙頒笂鐨勬暟鎹紝榪欎嬌寰楅棶棰樻洿涓哄鏉傦紝閫氬父錛屽簲鐢ㄧ▼搴忎細浣跨敤鍏變韓鐨勫垎甯冨紡緇勪歡錛屽瀹炰綋bean鏉ヨ〃杈炬寔涔呮€ф暟鎹€傚簲鐢ㄧ▼搴忓彲浠ヤ嬌鐢╞ean綆$悊鐨勬寔涔呮€у疄浣揵ean錛岃€屽湪瀹炰綋bean涓浜烘暟鎹闂€昏緫錛屾垨鑰呬嬌鐢ㄥ鍣ㄧ鐞嗙殑鎸佷箙鎬у疄浣揵ean錛屼粠鑰屼嬌瀹瑰櫒綆$悊鎵€鏈夌殑浜嬪姟鍜屾寔涔呮€х粏鑺傦紱鑰屽鏋滃簲鐢ㄧ▼搴忓浜庢暟鎹闂殑闇€姹傚崄鍒嗙畝鍗曠殑璇濓紝涔熷彲浠ラ噰鐢ㄤ細璇漛ean鎴朣ervlet鐩存帴璁塊棶鎸佷箙鎬у瓨鍌ㄦ潵璇誨彇鍜屼慨鏀規暟鎹€?/P>
涓€浜涘簲鐢ㄧ▼搴忓彲浠ヤ嬌鐢↗DBC搴旂敤紼嬪簭鎺ュ彛鏉ヨ闂叧緋繪暟鎹簱涓殑鏁版嵁錛孞DBC璐熻矗涓€鑸殑鎸佷箙鎬ф暟鎹闂拰綆$悊錛屽湪J2EE搴旂敤紼嬪簭涓紝JDBC涓彲浠ュ祵鍏QL璇彞錛岀敤浠ヨ闂叧緋誨瀷鏁版嵁搴擄紝褰撶劧鏍規嵁鏁版嵁搴撶被鍨嬬殑涓嶅悓錛孲QL璇彞鐨勮瘝娉曞拰璇硶涔熶細鏈夋墍涓嶅悓錛涢渶瑕佽鏄庣殑鏄紝褰撴暟鎹瓨鍌ㄦ牸寮忎笉鍚岀殑鏃跺€欙紝鏁版嵁璁塊棶閫昏緫鐨勫尯鍒氨鏇村姞鏄庢樉浜嗭紝渚嬪鍏崇郴鍨嬫暟鎹簱銆侀潰鍚戝璞℃暟鎹簱鍜岀鐩樻枃浠訛紝鍚勮嚜鏁版嵁鐨勮闂€昏緫鍚勬湁鍗冪錛岃繖鏍蜂竴鏉ュ氨閫犳垚浜嗙▼搴忎唬鐮佸拰鏁版嵁璁塊棶浠g爜涔嬮棿鐨勪緷璧栧叧緋伙紱褰撶▼搴忕粍浠訛紝鍗沖疄浣揵ean銆佷細璇漛ean鎴杝ervlet銆丣SP絳夐渶瑕佽闂暟鎹簮鏃訛紝瀹冧滑浼氫嬌鐢ㄦ紜殑搴旂敤紼嬪簭鎺ュ彛鏉ュ緱鍒拌繛鎺ュ茍綆$悊鏁版嵁婧愶紝浣嗚繖鏍蜂篃浼氶€犳垚榪欎簺緇勪歡涓庢暟鎹簮鐗╃悊瀹炵幇涔嬮棿鐨勪緷璧栧叧緋伙紝浠庤€屼嬌寰楀簲鐢ㄧ▼搴忓緢闅句粠涓€涓暟鎹瓨鍌ㄥ疄浣撶Щ妞嶅埌鍙︿竴涓暟鎹瓨鍌ㄥ疄浣撲腑鍘伙紱褰撴暟鎹簮鐨勭墿鐞嗗疄鐜板彉鍖栫殑鏃跺€欙紝搴旂敤紼嬪簭涔熷繀欏葷浉搴斿湴鍔犱互鏀瑰彉銆?/P>
鍩轟簬浠ヤ笂鎵€璁ㄨ鐨勯棶棰橈紝寮€鍙戜漢鍛樺紑濮嬮噰鐢ㄦ暟鎹闂璞$殑鏂規硶銆傛暟鎹闂璞″疄闄呬笂灝辨槸鍖呭惈瀵逛簬鎵€鏈夋暟鎹闂€昏緫鐨勫璞★紝騫剁鐞嗙潃瀵逛簬鏁版嵁婧愮殑榪炴帴錛屾牴鎹暟鎹簮鐨勪笉鍚岋紝鏁版嵁璁塊棶瀵硅薄瀹炵幇浜嗕笉鍚岀殑璁塊棶鏈哄埗錛岃繖閲屾墍璇寸殑鏁版嵁婧愬彲浠ユ槸鎸佷箙鎬у瓨鍌ㄤ粙璐紝濡傚叧緋誨瀷鏁版嵁搴擄紝涔熷彲浠ユ槸澶栭儴鏈嶅姟錛屽B2B鐨勬暟鎹氦鎹紱涓嶄粎鏄敤鎴鳳紝鑰屼笖鍖呮嫭搴旂敤緋葷粺涓殑鍏朵粬緇勪歡錛屼篃鍙互浣跨敤鏁版嵁璁塊棶瀵硅薄鎵€鎻愪緵鐨勬暟鎹闂帴鍙o紝鏁版嵁璁塊棶瀵硅薄灝嗘暟鎹簮鐨勭墿鐞嗗疄鐜扮粏鑺備笌鍏剁敤鎴峰畬鍏ㄥ垎紱誨紑鏉ワ紝騫朵笖鍦ㄥ簳灞傛暟鎹簮鍙樺寲鐨勬椂鍊欙紝鏁版嵁璁塊棶瀵硅薄鍚戠敤鎴鋒彁渚涚殑鎺ュ彛鏄笉浼氬彉鍖栫殑錛涜繖縐嶆柟娉曚嬌搴旂敤緋葷粺浣跨敤鏁版嵁璁塊棶瀵硅薄鏃跺彲浠ラ€傚簲澶氱鏁版嵁瀛樺偍浠嬭川錛屾€諱箣錛屾暟鎹闂璞″氨鏄郴緇熺粍浠跺拰鏁版嵁婧愪腑闂寸殑閫傞厤鍣ㄣ€?/P>
鍥?涓殑綾誨浘琛ㄧず浜嗘暟鎹闂璞¤璁℃ā寮忕殑鍙備笌瀵硅薄鍜屼箣闂寸殑璋冪敤鍏崇郴錛屽浘9鏄繖縐嶈璁℃ā寮忕殑搴忓垪鍥俱€?/P>
鍥? 鏁版嵁璁塊棶瀵硅薄綾誨浘
鍥? 鏁版嵁璁塊棶瀵硅薄搴忓垪鍥?/P>
瀵逛簬鍥?搴忓垪鍥句腑鐨勭粍浠跺姞浠ヨВ閲婂涓嬶細
(1)涓氬姟瀵硅薄(Business Object)銆傝〃紺烘暟鎹殑鐢ㄦ埛錛屽畠闇€瑕佸浜庢暟鎹殑璁塊棶錛屼竴涓笟鍔″璞″彲浠ョ敤浼氳瘽bean銆佸疄浣揵ean鎴栨槸鍏朵粬Java紼嬪簭鏉ュ疄鐜般€?/P>
(2)鏁版嵁璁塊棶瀵硅薄(Data Access Object)銆傛暟鎹闂璞℃槸榪欑妯″紡涓殑涓婚錛屽畠鎻愪緵浜嗗簳灞傛暟鎹闂殑瀵硅薄錛屽茍灝嗗叾鎻愪緵緇欎笟鍔″璞′互浣垮緱鍚庤€呰兘澶熼€忔槑鍦拌闂暟鎹簮錛涘悓鏃朵笟鍔″璞′篃灝嗘暟鎹殑鍔犺澆鍜屽瓨鍌ㄦ搷浣滅Щ浜ょ粰鏁版嵁璁塊棶瀵硅薄澶勭悊銆?/P>
(3)鏁版嵁婧?Data source)銆傝繖閲屾寚鐨勬槸鏁版嵁婧愮殑鐗╃悊瀹炵幇錛岃繖涓暟鎹簮鍙互鏄竴涓暟鎹簱錛屽寘鎷叧緋誨瀷鏁版嵁搴撱€侀潰鍚戝璞℃暟鎹簱鎴栨枃浠剁郴緇熴€?/P>
(4)浼犺緭瀵硅薄(Transfer Object)銆傝繖閲岀殑浼犺緭瀵硅薄鎸囩殑鏄暟鎹澆浣撱€傛暟鎹闂璞″彲浠ヤ嬌鐢ㄤ紶杈撳璞℃潵鍚戠敤鎴瘋繑鍥炴暟鎹紝鑰屾暟鎹闂璞″悓鏍峰彲浠ヤ粠鐢ㄦ埛閭i噷寰楀埌浼犺緭瀵硅薄鏉ュ鏁版嵁婧愪腑鐨勬暟鎹繘琛屾洿鏂般€?/P>
涓嬮潰緇欏嚭鍑犵瀹炵幇鏁版嵁璁塊棶瀵硅薄璁捐妯″紡鐨勬柟娉曘€?nbsp;
(1)鑷姩鏁版嵁璁塊棶瀵硅薄浠g爜鐨勭敓鎴?/B>
鏃㈢劧姣忎竴涓笟鍔″璞¢兘瀵瑰簲浜庝竴涓暟鎹闂璞★紝閭d箞寮€鍙戜漢鍛樺氨鍙互寤虹珛涓氬姟瀵硅薄銆佹暟鎹闂璞″拰搴曞眰瀹炵幇鐨勫叧緋伙紱涓€鏃﹁繖縐嶅叧緋誨緩绔嬭搗鏉ワ紝寮€鍙戜漢鍛樺氨鍙互涓烘墍鏈夌殑鏁版嵁璁塊棶瀵硅薄緙栧啓鐗規畩鐨勪唬鐮佺敓鎴愬伐鍏楓€?/P>
鐢熸垚鏁版嵁璁塊棶瀵硅薄鐨勪俊鎭€氬父瀛樺偍鍦ㄤ竴涓紑鍙戜漢鍛樺畾涔夌殑鎻忚堪鏂囦歡涓紝濡傛灉瀵逛簬鏁版嵁璁塊棶瀵硅薄鐨勮姹傝繃浜庡鏉傦紝寮€鍙戜漢鍛樺彲浠ヨ€冭檻浣跨敤絎笁鏂瑰伐鍏鋒潵涓哄叧緋誨瀷鏁版嵁搴撴彁渚涘璞″鍏崇郴鐨勬槧灝勩€傝繖浜涘伐鍏烽€氬父鏄竴浜汫UI紼嬪簭錛屽彲浠ョ敤鏉ュ皢涓氬姟瀵硅薄鏄犲皠涓烘寔涔呮€х殑瀛樺偍瀵硅薄錛屽茍瀹氫箟涓棿榪愪綔鐨勬暟鎹闂璞★紝鍦ㄦ槧灝勫畬鎴愮殑鏃跺€欙紝榪欎簺宸ュ叿鍙互鑷姩鍦扮敓鎴愪唬鐮侊紝騫舵彁渚涗竴浜涚浉搴旂殑鍔熻兘錛屽緙撳瓨緇撴灉銆佺紦瀛樻煡璇€€佷笌搴旂敤鏈嶅姟鍣ㄦ暣鍚堛€佷笌絎笁鏂逛駭鍝佹暣鍚堢瓑銆?/P>
(2)鏁版嵁璁塊棶瀵硅薄浠g悊(Factory for Data Access Objects)
褰撳簳灞傜殑鏁版嵁瀛樺偍涓嶄細杞繪槗鏀瑰彉鐨勬椂鍊欙紝寮€鍙戜漢鍛樺彲浠ラ噰鍙栬繖縐嶆柟娉曟潵瀹炵幇鐩稿簲鐨勶紝鏁版嵁璁塊棶瀵硅薄錛屽浘10鏄繖縐嶆柟娉曠殑綾誨浘銆?/P>
鍥?0 浣跨敤DAO浠g悊綾誨浘
褰撳簳灞傜殑鏁版嵁瀛樺偍鍙兘浼氬彉鍖栫殑鏃跺€欙紝寮€鍙戜漢鍛樺彲浠ラ噰鐢ㄦ娊璞′唬鐞嗙殑鏂規硶鏉ュ疄鐜版暟鎹闂璞★紱鎶借薄浠g悊鐨勬柟娉曚細鍒涘緩涓€浜涜櫄鎷熺殑鏁版嵁璁塊棶瀵硅薄浠g悊鍜屽悇縐嶇被鍨嬬殑瀹為檯鏁版嵁璁塊棶瀵硅薄浠g悊錛屾瘡縐嶅璞″搴斾竴縐嶆寔涔呮€у瓨鍌ㄤ粙璐ㄧ殑瀹炵幇錛屼竴鏃︾粍浠跺緱鍒拌繖浜涗唬鐞嗭紝灝卞彲浠ュ埄鐢ㄦ潵鍒涘緩闇€瑕佷嬌鐢ㄧ殑鏁版嵁璁塊棶瀵硅薄銆?/P>
鍥?1緇欏嚭浜嗚繖縐嶆儏鍐電殑綾誨浘銆傝綾誨浘琛ㄧず浜嗕竴涓熀紜€鐨勬暟鎹闂璞′唬鐞嗭紝瀹冩槸涓€涓娊璞$被錛岃鍏朵粬涓€浜涘疄闄呯殑鏁版嵁璁塊棶瀵硅薄浠g悊緇ф壙浠ユ敮鎸佺壒瀹氱殑鏁版嵁璁塊棶鍑芥暟錛涚敤鎴峰彲浠ュ緱鍒頒竴涓疄闄呯殑鏁版嵁璁塊棶瀵硅薄錛屽茍鍒╃敤瀹冩潵鍒涘緩闇€瑕佺殑鏁版嵁璁塊棶瀵硅薄鑰岃闂浉鍏崇殑鏁版嵁錛屾瘡涓€涓疄闄呯殑鏁版嵁璁塊棶瀵硅薄閮借礋璐e緩绔嬪浜庢暟鎹簮鐨勮繛鎺ワ紝騫跺緱鍒板拰綆$悊鎵€鏀寔鐨勪笟鍔℃暟鎹€?/P>
鍥?1 鎶借薄浠g悊浣跨敤DAO
涓嬪浘12鏄繖縐嶆儏鍐典笅鐨勫簭鍒楀浘銆?/P>
鍥?2鎶借薄浠g悊浣跨敤DAO搴忓垪鍥?/P>
榪欑璁捐妯″紡鐨勪紭鍔匡細
榪欑璁捐妯″紡鐨勭己闄鳳細
鎬諱箣錛屽湪寮€鍙戜漢鍛橀€夋嫨涓嶅悓妯″紡鐨勬椂鍊欙紝搴旇娉ㄦ剰錛屼竴瀹氱殑妯″紡瀵瑰簲浜庝竴瀹氱殑搴旂敤灞傛銆傛瘮濡傝錛屼笌瑙嗗浘鍜屾樉紺虹浉鍏崇殑妯″紡灝辨槸鍦╓eb灞傚簲鐢ㄧ殑銆傝€屼竴浜涗笌涓氬姟閫昏緫鎺у埗鐩稿叧鐨勬ā寮忓垯鏄笌EJB灞傛鐩稿叧鐨勩€傚彟澶栦竴浜涘叧浜庤鍙栨暟鎹拰鍒嗘淳鎿嶄綔鐨勬ā寮忓垯閫傜敤浜庝笉鍚岀殑灞傛涔嬮棿
7銆佸€煎璞℃垨浼犺緭瀵硅薄
鍊煎璞?value object)妯″紡閫氳繃鍑忓皯鍒嗗竷寮忛€氫俊鐨勬秷鎭€屼績榪涙暟鎹殑浜ゆ崲錛岄€氬父榪欓噷鎵€鎸囩殑閫氫俊鏄湪Web灞傚拰EJB灞備箣闂淬€傚湪涓€涓繙紼嬭皟鐢ㄤ腑錛屼竴涓崟涓€鍊煎璞″彲浠ヨ鐢ㄦ潵鍙栧嚭涓€緋誨垪鐩稿叧鏁版嵁騫舵彁渚涚粰瀹㈡埛銆?/P>
榪欑璁捐妯″紡鐨勫嚭鐜版槸鍩轟簬瀹㈡埛闇€瑕佷笌ejb澶ч噺鍦頒氦鎹㈡暟鎹殑鎯呭喌銆傚叿浣撴潵璇達紝鍦↗2EE騫沖彴涓紝搴旂敤緋葷粺閫氬父灝嗘湇鍔″櫒绔殑紼嬪簭緇勪歡瀹炵幇涓轟細璇漛ean鍜屽疄浣揵ean錛岃€岃繖浜涚粍浠剁殑閮ㄥ垎鏂規硶鍒欓渶瑕佸皢鏁版嵁榪斿洖緇欏鎴鳳紱榪欑鎯呭喌涓嬶紝閫氬父涓€涓敤鎴蜂細閲嶅璋冪敤鐩稿叧鏂規硶澶氭錛岀洿鍒板畠寰楀埌鐩稿叧淇℃伅錛屽簲璇ユ敞鎰忕殑鏄紝澶氭暟鎯呭喌榪欎簺鏂規硶璋冪敤鐨勭洰鐨勯兘鏄負浜嗗彇寰楀崟涓€鐨勪俊鎭紝渚嬪鐢ㄦ埛鍚嶆垨鑰呯敤鎴峰湴鍧€絳夈€?/P>
鏄捐€屾槗瑙侊紝鍦↗2EE騫沖彴涓婏紝榪欑璋冪敤鍩烘湰涓婇兘鏄潵鑷繙紼嬬殑銆備篃灝辨槸璇達紝鐢ㄦ埛澶氭璋冪敤鐩稿簲鐨勬柟娉曚細緇橶eb甯︽潵鏋佸ぇ鐨勮礋鎷咃紝鍗充嬌鐢ㄦ埛鍜孍JB瀹瑰櫒鍔犺澆鐩稿悓鐨凧VM銆丱S鍜岃綆楁満涓婅繍琛孍JB紼嬪簭錛岀敱浜庢柟娉曡皟鐢ㄨ緙虹渷鍦拌涓烘槸榪滅▼浠誨姟錛屾墍浠ヨ繖縐嶉棶棰樹緷鐒跺瓨鍦ㄣ€?/P>
鐢變簬浠ヤ笂鎵€鎻愬埌鐨勯棶棰橈紝鍦ㄨ繙紼嬫柟娉曠殑璋冪敤嬈℃暟澧炲姞鐨勬椂鍊欙紝鐩稿叧鐨勫簲鐢ㄧ▼搴忔€ц兘灝嗕細鏈夊緢澶х殑涓嬮檷錛屽洜姝ゅ埄鐢ㄥ嬈℃柟娉曡皟鐢ㄨ€屽彇寰楀崟涓€鐨勪俊鎭槸闈炲父浣庢晥鐨勶紱鍦ㄨ繖縐嶆儏鍐碉紝J2EE鐨勭爺絀朵漢鍛樺緩璁嬌鐢ㄤ紶杈撳璞℃潵鍖呭惈鎵€鏈夌殑紼嬪簭鏁版嵁錛屽嵆姣忔鏂規硶璋冪敤鍙互鍙戦€佸拰鎺ユ敹榪欎釜浼犺緭瀵硅薄錛涘綋鐢ㄦ埛鍚慐JB鍙戝嚭瀵逛簬紼嬪簭鏁版嵁鐨勮姹傛椂錛孍JB浼氬垱寤鴻繖涓紶杈撳璞★紝灝嗗畠鐨勫悇涓煙璧嬩互鐩稿叧鐨勬暟鍊鹼紝騫跺皢鏁翠釜瀵硅薄浼犻€佺粰鐢ㄦ埛銆?/P>
褰揈JB浣跨敤浼犺緭瀵硅薄鐨勬椂鍊欙紝鐢ㄦ埛鍙互閫氳繃浠呬粎涓€嬈℃柟娉曡皟鐢ㄦ潵鍙栧緱鏁翠釜瀵硅薄錛岃€屼笉鏄嬌鐢ㄥ嬈℃柟娉曡皟鐢ㄤ互寰楀埌瀵硅薄涓瘡涓煙鐨勬暟鍊鹼紱鐢變簬浼犺緭瀵硅薄鏄€氳繃鍊間紶閫掕€屼氦閫佺粰鐢ㄦ埛鐨勶紝鎵€浠ユ墍鏈夊浜庤浼犺緭瀵硅薄鐨勮皟鐢ㄦ垨鍙栧€奸兘鏄湰鍦拌皟鐢紝鑰屼笉鏄繙紼嬫柟娉曡皟鐢ㄣ€備笉榪囬渶瑕佹敞鎰忕殑鏄紝榪欎釜浼犺緭瀵硅薄蹇呴』鍏鋒湁瀵瑰簲浜庢瘡涓睘鎬х殑璁塊棶鏂規硶錛屾垨鑰呭皢鎵€鏈夊睘鎬ч兘璁句負鍏叡鐨勩€?nbsp;
綾誨浘13琛ㄧず浜嗕紶杈撳璞℃ā寮忕殑浣撶郴緇撴瀯銆?/P>
鍥?3 浼犺緭瀵硅薄綾誨浘
鍦ㄥ浘13涓紝浼犺緭瀵硅薄棣栧厛鍦‥JB涓垱寤猴紝鐒跺悗榪斿洖緇欒繙紼嬪鎴鳳紱褰撶劧錛屼紶杈撳璞′篃鍙互鏍規嵁闇€瑕佽瀺鍚堝叾浠栫殑璁捐妯″紡銆?/P>
鍥?4鏄劇ず浜嗕紶杈撳璞℃ā寮忎腑鐨勫弬涓庢ā鍧楀拰瀹冧滑涔嬮棿鐨勪氦浜掋€?/P>
鍥?4 浼犺緭瀵硅薄搴忓垪鍥?/P>
涓嬮潰鎴戜滑璇存槑涓€涓嬩紶杈撳璞℃ā寮忕殑鍚勪釜鍙備笌妯″潡錛?/P>
(1)瀹㈡埛(Client)銆傚鎴蜂唬琛ㄤ簡EJB鎵€鎻愪緵鏈嶅姟鐨勪嬌鐢ㄨ€咃紝閫氬父鏄繍琛屼簬鐢ㄦ埛緇堢鐨勫簲鐢ㄧ▼搴忋€?/P>
(2)涓氬姟瀵硅薄銆備笟鍔″璞¤〃紺哄湪涓€涓ā寮忎腑鐢變細璇漛ean銆佸疄浣揵ean鎴栨暟鎹闂璞?Data Access Object)瀹炵幇鐨勮鑹層€備笟鍔″璞¢€氬父璐熻矗鍒涘緩浼犺緭瀵硅薄錛屽茍鏍規嵁璇鋒眰灝嗗叾浼犻€佸埌鐩稿叧鐨勭敤鎴鳳紱涓氬姟瀵硅薄涔熷彲浠ヤ粠鐢ㄦ埛涓彇寰椾竴涓紶杈撳璞℃牸寮忕殑鏁版嵁錛屽茍搴旂敤榪欎簺鏁版嵁鏉ユ墽琛屼竴浜涙洿鏂般€?/P>
(3)浼犺緭瀵硅薄銆備紶杈撳璞℃槸涓€涓彲搴忓垪鍖栫殑Java瀵硅薄銆傚湪榪欎釜瀵硅薄鐨勭被涓紝閫氬父浼氭湁涓€涓寘鍚墍鏈夊煙鐨勬瀯閫犲嚱鏁幫紝鐢ㄦ潵鍒涘緩榪欎釜浼犺緭瀵硅薄銆?/P>
榪欎釜浼犺緭瀵硅薄涓殑鎴愬憳鍙橀噺鍩烘湰閮借瀹氫箟涓哄叕鍏憋紝浠庤€屾棤闇€涓哄畠浠彁渚涚浉鍏崇殑璁塊棶鏂規硶銆傚綋鐒跺鏋滃瓨鍦ㄤ竴瀹氬畨鍏ㄧ殑闇€瑕侊紝鐩稿叧鐨勬垚鍛樺彉閲忎篃鍙互璁句負淇濇姢鎴栫鏈夛紝騫朵笖緇欏畾鍚勮嚜鐨勮闂柟娉曘€傜敱姝ゅ彲瑙侊紝浼犺緭瀵硅薄鐨勮璁℃槸闅忕潃搴旂敤緋葷粺鐨勯渶瑕佷笉鍚岃€屾敼鍙樼殑錛屾槸鍚﹀皢瀵硅薄涓殑鎴愬憳鍙橀噺璁句負鍏叡錛屾垨鎻愪緵涓€瀹氱殑璁塊棶鏂規硶錛屽皢鏄竴涓緢閲嶈鐨勮璁¢棶棰樸€?/P>
閫氬父鍦ㄥ疄鐜拌繖涓ā寮忔椂錛屾渶澶氶噰鍙栫殑鏄彲鏇存柊鐨勪紶杈撳璞$瓥鐣ュ拰澶氫紶杈撳璞$瓥鐣ャ€?nbsp; 鍦ㄥ彲鏇存柊鐨勪紶杈撳璞$瓥鐣ヤ腑錛屼紶杈撳璞′笉浠呭彲浠ヤ粠鏈嶅姟浜庣敤鎴風殑涓氬姟瀵硅薄涓彇寰楃浉鍏充俊鎭拰鏁版嵁錛岃繕鍙互浠庝笟鍔″璞′腑寰楀埌鐢ㄦ埛瀵逛簬鏁版嵁鎵€闇€瑕佽繘琛岀殑鏀瑰彉銆?/P>
鍥?5浠ョ被鍥捐〃鐨勫艦寮忚〃鏄庝簡涓氬姟瀵硅薄鍜屼紶杈撳璞′箣闂寸殑鍏崇郴銆?/P>
鍥?5 鍙洿鏂頒紶杈撳璞$被鍥?/P>
涓氬姟瀵硅薄鍒涘緩浜嗕紶杈撳璞°€傝€岀敤鎴烽€氳繃璁塊棶涓氬姟瀵硅薄錛屾棦寰楀埌浜嗘墍闇€鐨勪俊鎭紝涔熷鐩稿叧鏁版嵁鍋氬嚭浜嗕竴瀹氱殑淇敼錛涗負浜嗚兘澶熶嬌寰楃敤鎴峰彲浠ヤ慨鏀逛笟鍔″璞″悇涓煙鐨勫彇鍊鹼紝榪欎釜瀵硅薄蹇呴』鎻愪緵涓€瀹氱殑鍙樺€兼柟娉曪紝鑰屽嚭浜庡Web璐熸媴鐨勮€冭檻錛屼笟鍔″璞℃墍鎻愪緵鐨勬柟娉曟渶濂戒互浼犺緭瀵硅薄涓哄弬鏁般€傜浉搴斿湴錛岃繖浜涙柟娉曞彲浠ュ幓璋冪敤浼犺緭瀵硅薄鎵€鎻愪緵鐨勬柟娉曪紝鏉ヨ緗紶杈撳璞$殑鍚勪釜鎴愬憳鍙橀噺鐨勫彇鍊鹼紱鍚屾椂鍦ㄤ紶杈撳璞$殑鏂規硶涓紝鎴戜滑涔熷彲浠ユ鍏ユ暟鎹獙璇佸拰瀹屾暣鎬ф鏌ョ殑閫昏緫錛岃繖鏍峰湪鐢ㄦ埛浠庝笟鍔″璞$殑鏂規硶寰楀埌浼犺緭瀵硅薄鏃訛紝鍙互鐩存帴璋冪敤浼犺緭瀵硅薄鐨勬垚鍛樻柟娉曡繘琛屾湰鍦版暟鎹闂紝褰撶劧榪欑鏈湴鏁版嵁璁塊棶涓嶄細褰卞搷鍒頒笟鍔″璞°€?/P>
褰撶敤鎴瘋皟鐢ㄤ笟鍔″璞$殑鍙樺€兼柟娉曟椂錛岃鏂規硶浼氬皢鐢ㄦ埛绔殑浼犺緭瀵硅薄搴忓垪鍖栵紝鍐嶅皢瀹冨彂閫佺粰涓氬姟瀵硅薄錛涗笟鍔″璞℃帴鏀跺埌鏇存柊鐨勪紶杈撳璞★紝渚垮皢榪欎簺鏇存柊鍐欏洖鍒拌嚜宸辯殑瀵硅薄鎷瘋礉涓幓錛?nbsp; 榪欓噷闇€瑕佽鏄庣殑鏄紝涓婇潰鎻愬埌鐨勫啓鍥炲彧鏄秹鍙婂埌琚洿鏂扮殑鍙橀噺錛岃€屼笉鏄叏閮ㄥ彉閲忕殑鍐欏洖錛屽洜姝ゆ垜浠渶瑕佸湪浼犺緭瀵硅薄涓彟璁劇疆涓€涓彉閲忥紝鏉ユ寚瀹氬摢浜涙垚鍛樺彉閲忚鐢ㄦ埛鏇存柊榪囷紝榪欎篃灝變嬌寰楄繖縐嶆ā寮忕殑璁捐鐩稿澶嶆潅錛屽紑鍙戜漢鍛橀渶瑕佽€冭檻鍚屾鍖栧拰鐗堟湰鎺у埗鐨勯棶棰樸€?/P>
鍥?6鏄劇ず浜嗚繖涓洿鏂拌繃紼嬬殑搴忓垪鍥俱€?/P>
鍥?6 鍙洿鏂頒紶杈撳璞″簭鍒楀浘
澶氫紶杈撳璞$殑鏂規硶鏄寚涓€涓崟涓€鐨勪笟鍔″璞″彲浠ユ牴鎹敤鎴瘋姹傚埗閫犲涓笉鍚岀殑浼犺緭瀵硅薄銆備篃灝辨槸璇達紝涓氬姟瀵硅薄鍜屽畠鎵€鍒涘緩鐨勪紶杈撳璞′繚鎸佷竴瀵瑰鐨勫叧緋匯€傜被鍥?7琛ㄧず浜嗚繖縐嶅疄鐜版柟娉曠殑鍚勪釜鍙備笌妯″潡浠ュ強瀹冧滑涔嬮棿鐨勮皟鐢ㄥ叧緋匯€?/P>
鍥?7 澶氫紶杈撳璞$被鍥?/P>
褰撲竴涓敤鎴烽渶瑕丄綾誨瀷鐨勪紶杈撳璞℃椂錛屼粬浼氭縺媧葷浉鍏矱JB鐨刧etDataA()鏂規硶鏉ュ彇寰椾紶杈撳璞錛涘綋浠栭渶瑕丅綾誨瀷鐨勪紶杈撳璞℃椂錛屼粬浼氭縺媧籫etDataB()鏂規硶鏉ヨ幏鍙栦紶杈撳璞錛涗緷姝ょ被鎺ㄣ€傚簭鍒楀浘18琛ㄧず浜嗚繖涓€榪囩▼銆?/P>
鍥?8 澶氫紶杈撳璞″簭鍒楀浘
浣跨敤榪欑璁捐妯″紡錛屽簲鐢ㄧ郴緇熺殑瀹炰綋bean鍙婂叾榪滅▼鎺ュ彛浼氬彉寰楀崄鍒嗙畝鍗曘€傚疄浣揵ean涓棤闇€鍐嶄負姣忎竴涓垚鍛樺彉閲忛兘瀹炵幇涓€涓猻et()鍜実et()鏂規硶錛屽茍鍦ㄨ繙紼嬫帴鍙d腑瀹炵幇鐩稿簲鐨勫畾涔夈€傜敤鎴鋒棤闇€鍐嶈繘琛屽嬈$殑鏂規硶璋冪敤鏉ュ彇寰椾俊鎭拰鏁版嵁錛屾墍闇€瑕佺殑鍙槸涓€嬈℃柟娉曡皟鐢ㄤ互鑾峰緱鏁翠釜浼犺緭瀵硅薄銆傚綋鐒惰繖閲岄渶瑕佽€冭檻Web璐熸媴鍜屽ぇ閲忔暟鎹竴嬈′紶杈撶殑鏉冭 銆傚紑鍙戜漢鍛樺彲浠ユ牴鎹笉鍚岀殑闇€瑕佹潵閫夋嫨涓嶅悓鐨勫疄鐜版柟娉曘€?/P>
濡備笂鎵€榪幫紝鐢ㄦ埛鍜屽疄浣揵ean涔嬮棿鍙互閫氳繃鍦ㄤ竴嬈℃柟娉曡皟鐢ㄤ腑浣跨敤浼犺緭瀵硅薄鑰屼氦鎹㈡墍鏈夌殑鏁版嵁錛屼篃灝辨槸璇翠紶杈撳璞′綔涓烘暟鎹澆浣撳伐浣滐紝騫跺噺灝戜簡榪滅▼鐨勬柟娉曡皟鐢紝浠庤€屽ぇ澶у噺杞諱簡Web璐熸媴銆傞€氳繃浣跨敤浼犺緭瀵硅薄鐨勬柟娉曪紝鎴戜滑涔熷皢鏈夊彲鑳藉噺灝戝疄浣揵ean鍜屽叾浼犺緭瀵硅薄闂寸殑浠g爜閲嶅銆備笉榪囧湪浣跨敤鍙洿鏂扮殑浼犺緭瀵硅薄鏂規硶鏃訛紝鐢ㄦ埛鍙互淇敼鍏舵湰鍦扮殑浼犺緭瀵硅薄錛屼箣鍚庡啀灝嗗叾浼犻€佸洖涓氬姟瀵硅薄涓紝鍚庤€呭皢鎵€闇€鐨勬洿鏂版暣鍚堝埌鑷繁涓€绔紱浣嗘槸榪欐牱涓€鏉ワ紝灝變細瀛樺湪涓€涓増鏈帶鍒剁殑闂錛屼笉鍚岀殑瀹㈡埛鍙兘鍦ㄥ悓鏃朵慨鏀圭浉鍚岀被鍨嬬殑浼犺緭瀵硅薄錛岃€屽鏋滅浉鍏崇殑涓氬姟瀵硅薄娌℃湁鍙戠幇榪欎竴鐐圭殑璇濓紝鍙兘灝變細閫犳垚涓€浜涚敤鎴風殑鏁版嵁娌℃湁寰楀埌鍙婃椂鏇存柊錛岃€屽彟澶栦竴浜涚敤鎴風殑鏁版嵁鍙堣瑕嗙洊鐨勬儏鍐碉紱鍦ㄧ郴緇熻璁′腑蹇呴』鑰冭檻榪欎釜闂銆?BR>
8銆佹埅鍙栬繃婊ゅ櫒
鎴彇榪囨護鍣?intercepting filter)涓昏鐢ㄤ簬瀵逛簬鐢ㄦ埛璇鋒眰鐨勪箣鍓嶅鐞嗗拰涔嬪悗澶勭悊錛屼篃灝辨槸璇村畠瀵逛簬瀹㈡埛鐨勮姹備嬌鐢ㄤ簡棰濆鐨勬搷浣溿€傛瘮濡傝錛宻ervlet鍙互澶勭悊涓€涓綉绔欑殑鎵€鏈夊鎴瘋姹傚茍鎻愪緵涓€涓牳蹇冪殑璁よ瘉鏈哄埗銆?/P>
榪欑妯″紡涓昏宸ヤ綔浜庤〃紺哄眰錛岃礋璐e鐞嗕笉鍚岀被鍨嬬殑璇鋒眰錛屽悓鏃朵篃闇€瑕佽繘琛屽縐嶄笉鍚岀殑澶勭悊銆傚湪榪欎簺璇鋒眰涓紝鏈変竴浜涜姹備細鐩存帴浼犻€佺粰鍚庣妯″潡澶勭悊錛岃€屽彟澶栦竴浜涜姹傚垯鍏堜細鍦ㄨ繃婊ゅ櫒閲岃В閲婃垨琛ュ厖鍐呭錛屼箣鍚庢墠鑳戒紶閫佺粰鍚庣妯″潡銆傝繖縐嶆ā寮忕殑鎻愬嚭涓昏鏄敱浜庝竴涓鎴風殑Web璁塊棶鍜岀郴緇熷搷搴旈兘闇€瑕佷竴瀹氱殑棰勫鐞嗗拰鍚庡鐞嗭紝渚嬪鐢ㄦ埛韜喚銆佺敤鎴風幆澧冧俊鎭€佺敤鎴瘋姹傜殑鍚堟硶鎬х瓑銆傞€氬父榪欎簺澶勭悊鐨勭粨鏋滈兘浼氬喅瀹氱敤鎴風殑璇鋒眰鏄惁鑳藉榪涜錛屾垨鏄郴緇熺殑鍝嶅簲搴旇鐢ㄤ粈涔堟牸寮忔潵琛ㄧず銆?/P>
瀵逛簬榪欑棰勫鐞嗗拰鍚庡鐞嗛棶棰橈紝浼犵粺涓婏紝寮€鍙戜漢鍛樹細璁捐涓€緋誨垪棰濆鐨勬嫻嬬▼搴忔ā鍧楋紝涔熷氨鏄竴鏁村if/else璇彞錛屽茍涓旀寚瀹氬鏋滃叾涓換浣曚竴涓嫻嬪け璐ワ紝鎵€鏈夌殑澶勭悊宸ヤ綔閮戒細閫€鍑恒€傛樉鐒訛紝榪欑鏂規硶鏄瓨鍦ㄥ緢澶у紛绔殑錛屽嵆浠g爜鐨勫彲璇繪€с€佸彲緇存姢鎬ч兘浼氳澶уぇ闄嶄綆錛屽悓鏃跺皢媯€嫻嬪伐浣滆瀺浜庝竴鑸殑紼嬪簭妯″潡錛屼嬌寰楁暣涓▼搴忕殑妯″潡鎬ч毦浠ヤ繚璇併€?/P>
瑙e喅榪欑闂鐨勫叧閿湪浜庯紝璁捐涓€縐嶇畝鍗曠殑鎶€鏈紝浠ヨ兘澶熸坊鍔犳垨縐婚櫎棰濆澶勭悊鐨勬ā鍧楋紝鑰岃繖浜涙ā鍧楅€氬父閮借兘澶熷畬鎴愪竴瀹氱殑媯€嫻嬪拰榪囨護鍔熻兘銆傛牴鎹互涓婄殑璁ㄨ錛孞2EE鐮旂┒浜哄憳鎻愬嚭浜嗚璁℃ā寮?---鎴彇榪囨護鍣ㄤ綔涓鴻В鍐蟲柟妗堬紝榪欑妯″紡鍙互鍦ㄤ笉褰卞搷鏍稿績澶勭悊妯″潡鐨勬儏鍐典笅錛屽疄鐜板彲鎻掑叆鐨勮繃婊ゅ櫒鏉ユ墽琛屼竴鑸殑澶勭悊鍔熻兘銆?nbsp;
浠庣悊璁轟笂鏉ヨ錛岃繖縐嶈繃婊ゅ櫒鍙互鎴彇瀹㈡埛璇鋒眰鍜岀郴緇熷搷搴旓紝騫惰繘琛岀浉搴旂殑棰勫鐞嗗拰鍚庡鐞嗭紱鍚屾椂寮€鍙戜漢鍛樹篃鍙互闅忔椂鏍規嵁闇€瑕佺Щ闄よ繖浜涜繃婊ゅ櫒錛屽茍涓嶇敤鎷呭績浼氭敼鍙樹換浣曞叾浠栨ā鍧椼€?nbsp;
鎴戜滑榪欓噷鎵€璇寸殑棰勫鐞嗗拰鍚庡鐞嗗姛鑳斤紝閫氬父鏄寚涓€浜涘熀鏈殑緋葷粺鏈嶅姟錛屽瀹夊叏銆佺櫥褰曪紝緋葷粺璋冭瘯絳夈€傛墽琛岃繖浜涘姛鑳界殑榪囨護鍣ㄩ€氬父鏄渶瑕佷笌鏍稿績妯″潡鍒嗗紑鐨勶紝騫朵笖鐢變簬緋葷粺鑱岃兘鎴栬鍒欑殑鍙樺寲錛岃繖浜涙ā鍧楅殢鏃跺彲鑳借娣誨姞鎴栧垹闄ゃ€?/P>
涓嬮潰鎻愪緵涓€浜涘叧浜庢埅鍙栬繃婊ゅ櫒鐨勫浘紺猴紝浠ュ府鍔╁ぇ瀹舵洿濂藉湴鐞嗚В榪欑璁捐妯″紡錛屽茍鍚堢悊鍦板姞浠ヨ繍鐢ㄣ€傚浘19琛ㄧず浜嗘埅鍙栬繃婊ゅ櫒妯″紡鐨勬暣浣撶粨鏋勶紝鍥?9鏄劇ず浜嗘埅鍙栬繃婊ゅ櫒涓殑鍙備笌妯″潡鍜岀浉浜掍箣闂寸殑鑱旂郴銆?/P>
鍥?9 鎴彇榪囨護鍣ㄦā寮?/P>
鍥?0 鎴彇榪囨護鍣ㄥ簭鍒楀浘
涓嬮潰鎴戜滑鍒嗗埆鏉ヨ鏄庡浘20涓殑鍚勪釜妯″潡錛?/P>
(1)榪囨護綆$悊鍣?Filter Manager)銆傝繃婊ょ鐞嗗櫒璐熻矗榪囨護鍣ㄧ殑涓昏澶勭悊宸ヤ綔錛屽嵆鍒涘緩榪囨護鍣ㄩ摼瀵硅薄浠ュ強鐩稿簲鐨勮繃婊ゅ櫒緇勫緩錛屽茍鍒濆鍖栨暣涓鐞嗚繃紼嬨€?/P>
(2)榪囨護鍣ㄩ摼(Filter Chain)銆傝繃婊ゅ櫒閾炬槸涓€緇勪簰涓嶄緷璧栫殑榪囨護鍣ㄦ湁搴忛泦鍚堛€?/P>
(3)榪囨護鍣?錛岃繃婊ゅ櫒2錛岃繃婊ゅ櫒3(FilterOne錛孎ilterTwo錛孎ilterThree)銆傝繖浜涢兘鏄彁渚涗笉鍚屾湇鍔$殑榪囨護鍣紝鑰岃繃婊ゅ櫒閾懼垯璐熻矗瀹冧滑鐨勫崗璋冨伐浣溿€?/P>
閫氳繃閲囩敤榪欑璁捐妯″紡錛屽簲鐢ㄧ郴緇熷彲浠ュ彇寰楁洿鏂逛究鐨勪腑蹇冩帶鍒訛紝榪欐槸鐢變簬榪囨護鍣ㄥ彲浠ユ彁渚涘鐞嗗縐嶈姹傜殑涓績妯″潡錛屽茍鑳芥牴鎹悗绔殑澶勭悊妯″潡鑰岃В閲婂拰娑﹁壊鐢ㄦ埛鐨勮姹傦紝浣垮緱璇ヨ姹傝兘鏇村ソ鍦頒笌澶勭悊妯″潡鎵€鎻愪緵鐨勫姛鑳藉尮閰嶃€傚彟澶栵紝榪囨護鍣ㄩ€氬父鍙互灝嗕笉鍚岀綾葷殑鏈嶅姟鑱氶泦鍦ㄤ竴璧鳳紝騫舵彁渚涚浉褰撶伒媧葷殑鏈嶅姟緇勫悎錛屽簲鐢ㄧ郴緇熷彲浠ラ€氳繃浣跨敤鎴彇榪囨護鍣ㄦ彁楂樺叾閲嶇敤鎬э紝榪囨護鍣ㄥ彲浠ラ殢鏃舵牴鎹渶瑕佷粠鍏朵粬紼嬪簭妯″潡涓彃鍏ユ垨縐婚櫎錛屽茍涓旂敱浜庡畠浠€氬父鍏鋒湁鏍囧噯鐨勬帴鍙o紝寮€鍙戜漢鍛樺彲浠ヤ嬌鐢ㄤ竴緇勭被浼肩殑榪囨護鍣紝騫跺湪涓嶅悓鐨勬儏鍐典笅榪涜鍏ㄧ粍鐨勯噸鐢ㄣ€?/P>
閲囩敤榪欑璁捐妯″紡涔熶細甯︽潵涓€瀹氱殑闂錛屽嵆鍦ㄨ繃婊ゅ櫒涔嬮棿鍏變韓淇℃伅灝嗗彉寰楅潪甯稿洶闅撅紝榪欐槸鐢變簬鏍規嵁鍏跺畾涔夊拰闇€姹傦紝姣忎釜榪囨護鍣ㄧ殑璁捐鍜屽紑鍙戦兘澶х浉寰勫涵銆傚洜鑰屽鏋滃湪涓嶅悓鐨勮繃婊ゅ櫒涔嬮棿闇€瑕佸叡浜俊鎭殑璇濓紝鍏朵唬浠峰皢鏄潪甯告槀璐電殑銆?/P>
浣滆€咃細鍔″疄錛屽騫翠粠浜婮2EE緗戠珯鍙婂簲鐢ㄧ郴緇熼」鐩殑寮€鍙戝拰搴旂敤銆?/P>
鍙傝€冭祫鏂欙細
銆奐2EE璁捐寮€鍙戠紪紼嬫寚鍗椼€?nbsp; Rod Johnson 鐢靛瓙宸ヤ笟鍑虹増紺?/P>
銆奐2EE鍙傝€冨ぇ鍏ㄣ€?nbsp; Jim Keogh 鐢靛瓙宸ヤ笟鍑虹増紺?/P>
銆婂疄鐢↗2EE璁捐妯″紡緙栫▼鎸囧崡銆?Craig A.Berry 鐢靛瓙宸ヤ笟鍑虹増紺?/P>
鐩墠澶у鏁頒紒涓氶噰鐢↗2EE鎶€鏈殑緇撴瀯璁捐涓庤В鍐蟲柟妗堛€傚浜庢垜浠涔犲拰鐮旂┒J2EE浣撶郴緇撴瀯鏉ヨ錛屼簡瑙d笌鎺屾彙J2EE浣撶郴緇撴瀯鐨勮璁℃柟娉曞強涓€浜涘父鐢ㄦā寮忔槸蹇呴』鐨勶紱妯″瀷-瑙嗗浘-鎺у埗(model-view-control錛岀畝縐癕VC)緇撴瀯鏄洰鍓嶆渶甯歌鐨凧2EE搴旂敤鎵€鍩轟簬鐨勪綋緋葷粨鏋勶紝MVC涓昏閫傜敤浜庝氦浜掑紡鐨刉eb搴旂敤錛屽挨鍏舵槸瀛樺湪澶ч噺欏甸潰鍙婂嬈″鎴瘋闂強鏁版嵁鏄劇ず錛涚浉姣旇緝鑰岃█錛屼竴涓伐浣滄祦浣撶郴緇撴瀯鏇村搴旂敤浜庤繃紼嬫帶鍒跺拰杈冨皯浜や簰鐨勬儏鍐典笅錛涢櫎浜嗕綋緋葷粨鏋勫錛孞2EE鐨勮璁℃ā寮忓鎴戜滑瑙e喅搴旂敤緋葷粺鐨勮璁′篃鏈夊緢澶х殑甯姪銆?/P>
妯″瀷-瑙嗗浘-鎺у埗緇撴瀯鏄氦浜掑紡搴旂敤紼嬪簭騫挎硾浣跨敤鐨勪竴縐嶄綋緋葷粨鏋勩€傚畠鏈夋晥鍦板湪瀛樺偍鍜屽睍紺烘暟鎹殑瀵硅薄涓尯鍒嗗姛鑳芥ā鍧椾互闄嶄綆瀹冧滑涔嬮棿鐨勮繛鎺ュ害錛岃繖縐嶄綋緋葷粨鏋勫皢浼犵粺鐨勮緭鍏ャ€佸鐞嗗拰杈撳叆妯″瀷杞寲涓哄浘褰㈡樉紺虹殑鐢ㄦ埛浜や簰妯″瀷錛屾垨鑰呮崲涓€縐嶈娉曪紝鏄灞傛鐨刉eb鍟嗕笟搴旂敤錛汳VC浣撶郴緇撴瀯鍏鋒湁涓変釜灞傞潰錛氭ā鍨嬶紙Model錛夈€佽鍥?View)鍜屾帶鍒?Controller)錛屾瘡涓眰闈㈡湁鍏跺悇鑷殑鍔熻兘浣滅敤錛孧VC浣撶郴緇撴瀯濡備笅錛?/P>
鍥? MVC 浣撶郴緇撴瀯
妯″瀷灞傝礋璐h〃杈懼拰璁塊棶鍟嗕笟鏁版嵁錛屾墽琛屽晢涓氶€昏緫鍜屾搷浣溿€備篃灝辨槸璇達紝榪欎竴灞傚氨鏄幇瀹炵敓媧諱腑鍔熻兘鐨勮蔣浠舵ā鎷燂紱鍦ㄦā鍨嬪眰鍙樺寲鐨勬椂鍊欙紝瀹冨皢閫氱煡瑙嗗浘灞傚茍鎻愪緵鍚庤€呰闂嚜韜姸鎬佺殑鑳藉姏錛屽悓鏃舵帶鍒跺眰涔熷彲浠ヨ闂叾鍔熻兘鍑芥暟浠ュ畬鎴愮浉鍏崇殑浠誨姟銆?/P>
瑙嗗浘灞傝礋璐f樉紺烘ā鍨嬪眰鐨勫唴瀹廣€傚畠浠庢ā鍨嬪眰鍙栧緱鏁版嵁騫舵寚瀹氳繖浜涙暟鎹浣曡鏄劇ず鍑烘潵銆傚湪妯″瀷灞傚彉鍖栫殑鏃跺€欙紝瀹冨皢鑷姩鏇存柊銆傚彟澶栬鍥懼眰涔熶細灝嗙敤鎴風殑杈撳叆浼犻€佺粰鎺у埗鍣ㄣ€?/P>
鎺у埗灞傝礋璐e畾涔夊簲鐢ㄧ▼搴忕殑琛屼負銆傚畠鍙互鍒嗘淳鐢ㄦ埛鐨勮姹傚茍閫夋嫨鎭板綋鐨勮鍥句互鐢ㄤ簬鏄劇ず錛屽悓鏃跺畠涔熷彲浠ヨВ閲婄敤鎴風殑杈撳叆騫跺皢瀹冧滑鏄犲皠涓烘ā鍨嬪眰鍙墽琛岀殑鎿嶄綔錛涘湪涓€涓浘褰㈢晫闈腑錛屽父瑙佺殑鐢ㄦ埛杈撳叆鍖呮嫭鐐瑰嚮鎸夐挳鍜岃彍鍗曢€夋嫨銆傚湪Web搴旂敤涓紝瀹冨寘鎷Web灞傜殑HTTP GET鍜孭OST鐨勮姹傦紱鎺у埗灞傚彲浠ュ熀浜庣敤鎴風殑浜や簰鍜屾ā鍨嬪眰鐨勬搷浣滅粨鏋滄潵閫夋嫨涓嬩竴涓彲浠ユ樉紺虹殑瑙嗗浘錛屼竴涓簲鐢ㄧ▼搴忛€氬父浼氬熀浜庝竴緇勭浉鍏沖姛鑳借瀹氫竴涓帶鍒跺眰鐨勬ā鍧楋紝鐢氳嚦涓€浜涘簲鐢ㄧ▼搴忎細鏍規嵁涓嶅悓鐨勭敤鎴風被鍨嬪叿鏈変笉鍚岀殑鎺у埗灞傝瀹氾紝榪欎富瑕佹槸鐢變簬涓嶅悓鐢ㄦ埛鐨勮鍥句氦浜掑拰閫夋嫨涔熸槸涓嶅悓鐨勩€?/P>
鍦ㄦā鍨嬪眰銆佽鍥懼眰鍜屾帶鍒跺眰涔嬮棿鍒掑垎璐d換鍙互鍑忓皯浠g爜鐨勯噸澶嶅害錛屽茍浣垮簲鐢ㄧ▼搴忕淮鎶よ搗鏉ユ洿綆€鍗曘€傚悓鏃剁敱浜庢暟鎹拰鍟嗗姟閫昏緫鐨勫垎寮€錛屽湪鏂扮殑鏁版嵁婧愬姞鍏ュ拰鏁版嵁鏄劇ず鍙樺寲鐨勬椂鍊欙紝鏁版嵁澶勭悊涔熶細鍙樺緱鏇寸畝鍗曘€?BR>
涓€涓璁℃ā寮忔弿榪頒簡瀵逛簬鐗瑰畾璁捐闂琚獙璇佺殑瑙e喅鏂規錛屽畠緇煎悎浜嗘墍鏈夊紑鍙戣€呭榪欎釜闂鎵€鍦ㄩ鍩熺殑鐭ヨ瘑鍜岃瑙o紱鍚屾椂涔熸槸瀵逛簬甯歌闂鐨勫彲閲嶇敤鏂規錛屽畠浠竴鑸€傜敤浜庡崟涓棶棰橈紝浣嗘槸緇勭粐鍦ㄤ竴璧峰氨鍙互鎻愪緵鏁翠釜浼佷笟緋葷粺鐨勮В鍐蟲柟妗堛€備笅闈㈡垜浠垪涓懼叓縐嶅父鐢ㄤ簬J2EE騫沖彴鐨勮璁℃ā寮忥紝騫跺姣忕妯″紡浣滅畝鍗曠殑浠嬬粛錛屼究浜庡ぇ瀹跺涔犮€佺悊瑙d笌鐏墊椿搴旂敤銆?/P>
1銆佸墠鎺у埗鍣?/B>
鍓嶆帶鍒跺櫒(front controller)涓昏鎻愪緵涓€縐嶅彲浠ラ泦涓紡綆$悊璇鋒眰鐨勬帶鍒跺櫒錛屼竴涓墠鎺у埗鍣ㄥ彲浠ユ帴鍙楁墍鏈夌殑瀹㈡埛璇鋒眰錛屽皢姣忎釜璇鋒眰閫掍氦緇欑浉搴旂殑璇鋒眰鍙ユ焺錛屽茍閫傚綋鍦板搷搴旂敤鎴楓€?/P>
鍓嶆帶鍒跺櫒涔熸槸琛ㄧず灞傜殑璁捐妯″紡錛屽畠鐨勫嚭鐜頒富瑕佹槸鐢變簬琛ㄧず灞傞€氬父闇€瑕佹帶鍒跺拰鍗忚皟鏉ヨ嚜涓嶅悓鐢ㄦ埛鐨勫涓姹傦紝鑰岃繖縐嶆帶鍒舵満鍒跺張鏍規嵁涓嶅悓鐨勯渶瑕侊紝鍙兘浼氶泦涓紡鎺у埗鎴栧垎鏁e紡鎺у埗銆傛崲鍙ヨ瘽璇達紝灝辨槸搴旂敤緋葷粺闇€瑕佸浜庤〃紺哄眰鐨勮姹傛彁渚涗竴涓泦涓紡鎺у埗妯″潡錛屼互鎻愪緵鍚勭緋葷粺鏈嶅姟錛屽寘鎷唴瀹規彁鍙栥€佽鍥劇鐞嗗拰嫻忚錛屽鏋滅郴緇熶腑娌℃湁榪欑闆嗕腑寮忔帶鍒舵ā鍧楁垨鎺у埗鏈哄埗錛屾瘡涓笉鍚岀殑緋葷粺鏈嶅姟閮介渶瑕佽繘琛屽崟鐙殑瑙嗗浘澶勭悊錛岃繖鏍蜂唬鐮佺殑閲嶅鎬у氨浼氭彁楂橈紝鑷翠嬌緋葷粺寮€鍙戜唬浠鋒彁楂橈紱鍚屾椂錛屽鏋滄病鏈変竴涓浐瀹氭ā鍧楃鐞嗚鍥句箣闂寸殑嫻忚鏈哄埗錛岃嚧浣垮叾嫻忚鍔熻兘涓嬫斁浜庢瘡涓笉鍚岀殑瑙嗗浘涓紝鏈€緇堝繀灝嗕嬌寰楃郴緇熺殑鍙淮鎶ゆ€у彈鍒扮牬鍧忥紱鏈枃涓垜浠富瑕佽璁虹殑鏄泦涓紡鎺у埗妯″潡錛岃€屼笉鏄垎鏁e紡鎺у埗錛屽洜涓哄墠鑰呮洿閫傚悎浜庡ぇ鍨嬬殑搴旂敤緋葷粺銆?/P>
鍩轟簬涓婇潰鎵€璇寸殑闂錛岀爺絀朵漢鍛樻彁鍑轟簡鍓嶆帶鍒跺櫒鐨勮璁℃ā寮忋€傚湪榪欑妯″紡涓紝鎺у埗鍣ㄦ彁渚涗竴涓鐞嗕笉鍚岃姹傜殑鎺у埗鐐癸紝榪欓噷鐨勫鐞嗗伐浣滃寘鎷畨鍏ㄤ簨鍔°€佽鍥鵑€夋嫨銆侀敊璇鐞嗗拰鍝嶅簲鍐呭鐨勭敓鎴愶紱閫氳繃灝嗚繖浜涘鐞嗗伐浣滈泦涓湪涓€鐐硅繘琛岋紝澶уぇ鍦板噺浣庝簡Java浠g爜閲忥紝鍚屾椂榪欑鏂規硶涔熷彲浠ュ噺灝戝湪瑙嗗浘妯″潡鐨勭▼搴忛€昏緫錛屼繚璇佷簡鍦ㄤ笉鍚岃姹備箣闂村彲浠ラ噸鐢ㄥぇ閲忕殑閫昏緫浠g爜銆傞€氬父錛屾帶鍒跺櫒閮芥槸鍜屼竴涓垎媧劇粍浠惰仈鍚堝伐浣滅殑錛屽垎媧劇粍浠朵富瑕佹槸鐢ㄤ簬瑙嗗浘綆$悊鍜屾祻瑙堬紝涔熷氨鏄負鐢ㄦ埛閫夋嫨涓嬩竴涓簲璇ユ樉紺虹殑瑙嗗浘錛屽茍鍚屾椂鎻愪緵瀵逛簬鐩稿叧鏄劇ず璧勬簮鐨勬帶鍒躲€傚垎媧劇粍浠跺彲浠ュ寘鍚湪鎺у埗鍣ㄤ箣鍐咃紝鎴栨槸鍦ㄥ彟澶栦竴涓崟鐙殑緇勪歡涓紱铏界劧鍓嶆帶鍒跺櫒妯″紡鎺ㄨ崘瀵逛簬鍏ㄩ儴鐨勮姹備嬌鐢ㄧ粺涓€澶勭悊錛屼絾鏄畠涔熸病鏈夐檺鍒跺湪涓€涓郴緇熶腑鍙兘鍏鋒湁涓€涓帶鍒跺櫒錛屽湪緋葷粺涓殑姣忎釜灞傛閮藉彲浠ュ叿鏈夊涓帶鍒跺櫒錛屽茍涓旀槧灝勮嚦涓嶅悓鐨勭郴緇熸湇鍔★紝涓嬪浘2鏄劇ず浜嗗墠鎺у埗鍣ㄧ殑綾誨浘銆?/P>
鍥? 鍓嶆帶鍒跺櫒鐨勭被鍥?/P>
鍥?鏄劇ず浜嗗墠鎺у埗鍣ㄧ殑搴忓垪鍥撅紝琛ㄧず涓€涓帶鍒跺櫒濡備綍澶勭悊鐩稿叧鐨勮姹傘€?/P>
鍥?鍓嶆帶鍒跺櫒搴忓垪鍥?/P>
涓嬮潰鎴戜滑鏉ヨ璁轟竴涓嬪浘3鐨勫悇涓粍浠躲€?/P>
2銆佹帶鍒跺櫒
鎺у埗鍣?controller)鏄礋璐e鐞嗗悇縐嶅鎴瘋姹傜殑鎺у埗鐐癸紝騫跺彲浠ュ皢涓€瀹氱殑鑱岃兘(濡傜敤鎴瘋璇佺瓑)涓嬫斁緇欏府鍔╃被銆?/P>
(1)鍒嗘淳緇勪歡(Dispatcher)銆備竴涓垎媧劇粍浠朵富瑕佹槸鐢ㄤ簬瑙嗗浘鐨勭鐞嗗拰嫻忚錛屼負鐢ㄦ埛閫夋嫨涓嬩竴涓彲浠ユ樉紺虹殑瑙嗗浘錛屽茍綆$悊鐩稿叧鐨勬樉紺鴻祫婧愶紱鍒嗘淳緇勪歡鍙互鍦ㄤ竴涓帶鍒跺櫒鍐呰繍琛岋紝鎴栬€呬綔涓轟竴涓崟鐙殑緇勪歡涓庢帶鍒跺櫒鍗忓悓宸ヤ綔錛涘紑鍙戜漢鍛樺彲浠ュ湪鍒嗘淳緇勪歡涓疄鐜伴潤鎬佺殑瑙嗗浘鍒嗘淳鎶€鏈紝鎴栨槸澶嶆潅鐨勫姩鎬佸垎媧俱€?/P>
(2)甯姪綾?Helper)銆傚府鍔╃被璐熻矗甯姪涓€涓鍥炬垨鎺у埗鍣ㄦ潵瀹屾垚鍏跺鐞嗗伐浣滐紝鍥犳錛屽府鍔╃被鍏鋒湁澶氶」鑱岃矗錛屽寘鎷敹闆嗘暟鎹€佸瓨鍌ㄤ腑闂存暟鎹ā鍨嬬瓑錛涘彟澶栵紝甯姪綾諱篃鍙互鍦ㄤ繚璇佹暟鎹畬鏁存€у拰鍑嗙‘鎬х殑鎯呭喌涓嬶紝涓轟笉鍚屾樉紺洪渶姹備慨鏀規暟鎹ā鍨嬶紱涔熷氨鏄錛屾牴鎹敤鎴風殑璇鋒眰錛屽府鍔╃被鍙互鍚戣鍥炬彁渚涙湭緇忓鐞嗙殑鍘熷鏁版嵁錛屾垨鏄凡緇忔牸寮忓寲鍚庣殑Web鍐呭錛屼竴涓鍥懼悓鏃跺彲浠ュ拰澶氫釜甯姪綾誨崗鍚屽伐浣滐紝鑰屽悗鑰呴€氬父鏄敱JavaBeans鍜屾爣絳?tag)瀹炵幇鐨勩€?BR>
3銆佽鍥?nbsp;
瑙嗗浘(view)璐熻矗鍚戠敤鎴鋒樉紺轟俊鎭紝鑰屽府鍔╃被鍒欒礋璐f敮鎸佽鍥劇殑宸ヤ綔錛屽嵆鎵撳寘鍜屽緩绔嬬浉搴旂殑鏁版嵁妯″瀷錛屼笅闈㈡垜浠粙緇嶅嚑縐嶅彲浠ュ疄鐜版帶鍒跺櫒鐨勬柟娉曘€?/P>
1錛夊熀浜嶴ervlet鍓嶆帶鍒跺櫒
榪欑鏂規硶寤鴻浣跨敤servlet鏉ュ疄鐜頒竴涓帶鍒跺櫒錛屽敖綆″湪璇硶涓婄浉宸棤鍑狅紝浣嗘槸瀹冩瘮浣跨敤JSP鏉ュ疄鐜拌浼樿秺涓€浜涳紱鍥犱負鎺у埗鍣ㄦ墍榪涜鐨勮姹傚鐞嗭紝澶氭暟閮芥槸涓庣▼搴忚繍琛屽拰鎺у埗嫻佸姩鐩稿叧鐨勶紝榪欎簺澶勭悊宸ヤ綔铏界劧涓庢樉紺烘ā寮忕浉鍏籌紝浣嗘槸瀹為檯涓婃槸閫昏緫鐙珛鐨勶紝鎵€浠ュ畠浠洿閫傚悎鍦╯ervlet涓疄鐜幫紝鑰屼笉鏄疛SP鎶€鏈腑錛涗嬌鐢ㄨ繖縐嶆柟娉曚篃瀛樺湪涓€浜涘急鐐癸紝姣斿璇磗ervlet鏃犳硶浣跨敤JSP榪愯鐜鐨勮祫婧愶紝濡傝姹傚弬鏁扮瓑錛屼絾鏄繖涓急鐐逛篃涓嶆槸涓嶈兘瑙e喅鐨勶紝鎴戜滑鍙互鍦╯ervlet涓緩绔嬬浉鍏崇殑鍙ユ焺鏉ヨ闂悓鏍風殑璧勬簮錛屽綋鐒跺叾浠g爜浼氬彉寰楃箒鐞愪竴鐐廣€?/P>
2錛夊熀浜嶫SP鐨勫墠鎺у埗鍣?/B>
榪欑鏂規硶寤鴻浣跨敤JSP欏甸潰瀹炵幇鎺у埗鍣紝灝界璇硶涓婄浉鍚岋紝浣嗘槸Servlet鏂規瑕佹瘮鍏朵紭瓚婁竴浜涳紱鍥犱負鎺у埗鍣ㄦ墍澶勭悊鐨勯€昏緫涓€鑸兘涓嶆槸鏈夊叧鏄劇ず妯″紡鐨勶紝鎵€浠ュ湪JSP欏甸潰涓疄鐜版帶鍒跺櫒浼間箮鏈夌偣椋庨┈鐗涗笉鐩稿強錛涗嬌鐢ㄨ繖縐嶆柟娉曚篃涓嶅埄浜庡紑鍙戝洟闃熺殑瑙掕壊鍜岃亴璐g殑鍒嗛厤錛屽嵆杞歡寮€鍙戜漢鍛橀渶瑕佸湪璐熻矗鏄劇ず閫昏緫鐨凧SP欏甸潰涓慨鏀硅姹傚鐞嗙殑浠g爜錛岄€氬父錛岃繖縐嶅伐浣滈兘鏄浉褰撳鏉傜殑錛屽挨鍏惰€冭檻鏁翠釜JSP欏甸潰鐨勭紪紼嬨€佺紪璇戙€佹祴璇曞拰璋冭瘯閿欒銆?/P>
3錛夋帶鍒跺櫒涔嬩腑鐨勫垎媧劇粍浠?/B>
濡傛灉鍒嗘淳緇勪歡娌℃湁杈冨鍔熻兘錛屽紑鍙戜漢鍛樺彲浠ュ湪鎺у埗鍣ㄥ疄鐜拌緇勪歡銆?/P>
4錛夊熀紜€鍓嶇
鍩轟簬浣跨敤servlet瀹炵幇鍓嶆帶鍒跺櫒錛岃繖縐嶆柟妗堝緩璁疄鐜頒竴涓帶鍒跺櫒浣滀負鍩虹綾伙紝榪欐牱鍏朵粬鐨勬帶鍒跺櫒鍙互鍦ㄥ叾涔嬩笂鎵╁睍錛涜繖涓熀紜€綾誨彲浠ュ寘鍚竴浜涢€氱敤鐨勯€昏緫瀹炵幇錛屽畠鐨勫瓙綾誨氨浼氶噸杞借繖浜涘疄鐜頒唬鐮侊紝榪欑鏂規硶涔熸湁涓€瀹氱殑緙洪櫡錛屽綋鏈夎澶氬瓙綾葷戶鎵胯繖涓熀紜€綾伙紝騫跺ぇ閲忓湴閲嶇敤浠g爜鏃訛紝閭d箞灝辨湁鍙兘鍑虹幇涓€涓被鐨勬敼鍙樹細褰卞搷鍒版墍鏈夊瓙綾葷殑鎯呭喌銆?/P>
5錛夌敤榪囨護鍣ㄥ疄鐜板墠鎺у埗鍣?/B>
榪囨護鍣ㄦ彁渚涗簡涓庣敤鎴瘋姹傜殑涓績澶勭悊鐩哥被浼肩殑鍔熻兘錛屼篃灝辨槸璇達紝鎺у埗鍣ㄧ殑涓€浜涘姛鑳藉彲浠ョ敱榪囨護鍣ㄦ潵瀹炵幇錛岃繖縐嶆柟妗堢殑榪囨護鍣ㄤ富瑕佽礋璐e鐞嗚姹傜殑鎴彇鍜岃В閲婏紝鑰屼笉鏄姹傜殑澶勭悊鍜屽搷搴旂殑鐢熸垚錛涢€氬父鍙互涓哄簲鐢ㄧ郴緇熸彁渚涗竴涓牳蹇冩帶鍒剁偣錛屼互澶勭悊鎵€鏈夌殑緋葷粺鏈嶅姟鍜岀▼搴忛€昏緫錛屾牳蹇冩帶鍒朵篃灝辮〃鏄庝簡鎵€鏈夌殑璇鋒眰閮藉彲浠ョ畝鍗曞湴琚窡韙拰璁板綍錛屼粠鑰屾柟渚垮悇縐嶆湇鍔″姛鑳界殑瀹炴柦錛涘綋鐒訛紝瀹冧篃瀛樺湪涓€浜涚己鐐癸紝涓€涓牳蹇冩帶鍒剁偣鐨勫皬闂鍙兘浼氬紩鍙戠郴緇熺殑宕╂簝錛屼絾鍦ㄥ簲鐢ㄧ郴緇熺殑瀹為檯寮€鍙戜腑錛岃繖騫朵笉鏄釜闂錛屽洜涓洪€氬父鎴戜滑閮戒細鍦ㄥ悓涓€涓眰闈笂瀹炵幇澶氫釜鎺у埗鍣紝浠庤€岄伩鍏嶄簡榪欎釜緙洪櫡錛涘湪鎺у埗鍣ㄤ腑錛屽紑鍙戜漢鍛樺彲浠ュ緢鏂逛究鍦板疄鐜頒竴涓鏌ュ畨鍏ㄦ満鍒剁殑緇勪歡錛屼粠鑰屽彲浠ュ湪鏈€澶栧眰灞忚斀瀵圭郴緇熺殑鎭舵剰璁塊棶錛屽彟澶栦嬌鐢ㄦ帶鍒跺櫒涔熶細鎻愰珮緋葷粺妯″潡鐨勫彲閲嶇敤鎬э紝灝ゅ叾鍦ㄦ帶鍒跺櫒鍚屾椂浣跨敤甯姪綾葷殑鏃跺€欍€?/P>
4銆佽鍥懼府鍔?/B>
瑙嗗浘甯姪(View helper)鏄睘浜庤〃紺哄眰鐨勮璁℃ā寮忥紝涓€涓鍥懼府鍔╁彲浠ュ寘鍚浉鍏寵鍥句腑鐨勬暟鎹闂拰鍐呭鏄劇ず鐨勯€昏緫錛屽茍鍙互綺劇偧綆€鍖栬鍥撅紱鏄劇ず閫昏緫涓昏鏄叧浜庡浣曟牸寮忓寲欏甸潰涓婄殑鏁版嵁錛岃€岃闂€昏緫鍒欐槸鍏充簬濡備綍鍙栧嚭鏁版嵁錛岃鍥懼府鍔╅€氬父鐢ㄦ潵鏄劇ず鏁版嵁鐨凧SP鏍囪(tag)鎴栨槸璇誨彇鏁版嵁鐨凧avaBean銆?/P>
榪欑璁捐妯″紡鐨勫嚭鐜頒富瑕佹槸鐢變簬鐩墠鐨勫簲鐢ㄧ郴緇熼€氬父闇€瑕佸疄鏃跺湴寮€鍙戞樉紺哄唴瀹癸紝騫朵笖鑳藉鐞嗗姩鎬佺殑紼嬪簭鏁版嵁銆傚鏋滆繖浜涚▼搴忔暟鎹殑璁塊棶閫昏緫鍜屾樉紺洪€昏緫鐨勫叧緋昏繃浜庣揣瀵嗭紝鍒欑郴緇熺殑琛ㄧず灞傚氨浼氱粡甯擱渶瑕佹敼鍔紝浠庤€岀郴緇熺殑鐏墊椿鎬с€侀噸鐢ㄦ€т細澶уぇ鍦板彈鍒扮牬鍧忥紱鍚屾椂鍦ㄧ浉鍚岀殑妯″潡涓疄鐜拌闂€昏緫鍜屾樉紺洪€昏緫灝嗕細褰卞搷緋葷粺鐨勬ā鍧楀寲錛屼篃浼氫嬌寰楀紑鍙戝洟闃熺殑浠誨姟鍒掑垎涓嶆竻銆?/P>
涓€涓鍥鵑€氬父鍖呭惈鏍煎紡鍖栦俊鎭紝騫跺皢鍏跺鐞嗕換鍔″垎鍙戠粰鑷繁鐨勫府鍔╃被錛屽悗鑰呴€氬父鏄敤JavaBeans鎴栨爣璁?tag)鏉ュ疄鐜扮殑錛屽府鍔╃被鍚屾椂鍙互瀛樺偍瑙嗗浘鐨勪腑闂存暟鎹ā鍨嬪茍瀹炵幇鏁版嵁閫傞厤鍣ㄧ殑鍔熻兘錛屽嵆閫傚綋鍦拌漿鍖栨暟鎹牸寮忥紱寮€鍙戜漢鍛樺彲浠ラ噰鐢ㄥ縐嶆柟娉曞疄鐜拌鍥劇粍浠訛紝閫氬父錛屽紑鍙戜漢鍛樺彲浠ヤ嬌鐢↗SP鏉ュ疄鐜幫紝騫朵笖榪欎篃鏄竴縐嶅€煎緱鎺ㄨ崘鐨勬柟娉曘€傚綋鐒訛紝鐩稿簲鍦板紑鍙戜漢鍛樹篃鍙互浣跨敤Servlet鏉ュ疄鐜板畠錛屽皢瑙嗗浘涓竴瀹氱殑紼嬪簭閫昏緫妞嶅叆鍒板府鍔╃被涓紝浼氭湁鍒╀簬搴旂敤緋葷粺鐨勬ā鍧楀寲鍜屽彲閲嶇敤鎬с€傜郴緇熷彲浠ヤ嬌鐢ㄥ悓涓€涓府鍔╃被涓轟笉鍚岀殑鐢ㄦ埛鏄劇ず涓嶅悓鐨勬暟鎹俊鎭紝騫跺湪涓嶅悓鐨勬樉紺烘牸寮忎笅鏄劇ず錛涢€氬父錛屽鏋滃紑鍙戜漢鍛樺彂鐜拌鍥劇殑JSP欏甸潰涓瓨鍦ㄥぇ閲忕殑鑴氭湰浠g爜鏃訛紝灝卞彲浠ヨ€冭檻浣跨敤瑙嗗浘甯姪榪欑妯″紡浜嗭紝鍥犱負鍦ㄨ繖縐嶆儏鍐典笅錛屽熀鏈兘鏄▼搴忛€昏緫鍜屾樉紺洪€昏緫鍏鋒湁榪囦簬绱у瘑鐨勮仈緋伙紱榪欐椂寮€鍙戜漢鍛樺彲浠ュ皢涓€浜涢€傜敤浜庢墍鏈夌被鍨嬬殑璇鋒眰鐨勯€昏緫澶勭悊鏀劇疆鍒頒竴瀹氱殑甯姪綾諱腑錛岃€屾牴鎹渶瑕侊紝涔熷彲浠ュ皢鍙﹀涓€浜涢€昏緫澶勭悊鏀劇疆鍦ㄨ鍥懼眰涓婄殑鍏朵粬紼嬪簭妯″潡涓紝姣斿璇翠互鍓嶈璁鴻繃鐨勬埅鍙栬繃婊ゅ櫒銆?nbsp;
瑙嗗浘甯姪榪欑妯″紡鐨勮璁$悊蹇典富瑕佹槸鍒嗙搴旂敤緋葷粺鐨勯€昏緫鑱岃矗錛屼笅闈㈡垜浠彁渚涗竴浜涘浘紺猴紝浠ユ柟渚垮ぇ瀹舵洿濂藉湴鐞嗚В榪欑妯″紡銆?/P>
鍥?浠ョ被鍥?class diagram)鐨勫艦寮忚鏄庝簡瑙嗗浘甯姪鐨勭郴緇熺粨鏋勩€?/P>
鍥? 瑙嗗浘甯姪綾誨浘
鍥?琛ㄧず浜嗚鍥懼府鍔╂ā寮忕殑搴忓垪鍥撅紝瀹冭〃鏄庝簡榪欑妯″紡涓殑涓昏鎴愬垎鍙婁簰鐩鎬箣闂寸殑榪愯鎯呭喌錛涗笉榪囬渶瑕佽鏄庣殑鏄紝鍦ㄥ緢澶氬簲鐢ㄧ郴緇熶腑錛屽鎴風鍜岃鍥懼眰涔嬮棿浼氬瓨鍦ㄤ竴涓帶鍒跺櫒鍔犱互閫傚綋鐨勮皟鑺傘€?/P>
鍥?瑙嗗浘甯姪搴忓垪鍥?/P>
鍦ㄧ被鍥捐〃涓紝澶у鍙互鍙戠幇錛屽彲鑳藉瓨鍦ㄦ病鏈変換浣曠浉鍏沖府鍔╃被鐨勮鍥撅紝榪欑鎯呭喌涓嬶紝閫氬父浠h〃瑙嗗浘鐨凧SP欏甸潰浼氭湁涓€浜涢潤鎬佺殑鎴栧皬鏁伴噺鐨勮剼鏈唬鐮併€?/P>
榪欓噷鎴戜滑瀵逛簬搴忓垪鍥句腑鐨勫悇涓厓绱犲姞浠ョ畝鍗曠殑浠嬬粛錛?/P>
(1)瑙嗗浘(view)銆傝鍥捐礋璐e悜鐢ㄦ埛灞曠ず鍔ㄦ€佹暟鎹俊鎭紝鑰屽府鍔╃被鍒欒礋璐f敮鎸佽鍥劇殑宸ヤ綔錛屽嵆鎵撳寘鍜屽緩绔嬬浉搴旂殑鏁版嵁妯″瀷銆?/P>
(2)甯姪綾?helper)銆備竴涓府鍔╃被璐熻矗甯姪瑙嗗浘鎴栨帶鍒跺櫒瀹屾垚鐩稿叧鐨勫鐞嗗伐浣滐紝鍖呮嫭鏀墮泦鏁版嵁銆佸瓨鍌ㄤ腑闂存ā鍨嬬瓑錛涘府鍔╃被涔熷彲浠ュ湪淇濊瘉鏁版嵁瀹屾暣鎬у拰鍑嗙‘鎬х殑鎯呭喌涓嬶紝涓轟笉鍚屾樉紺洪渶姹備慨鏀規暟鎹ā鍨嬶紝涔熷氨鏄錛屾牴鎹敤鎴風殑璇鋒眰錛屽府鍔╃被鍙互鍚戣鍥炬彁渚涙湭緇忓鐞嗙殑鍘熷鏁版嵁錛屾垨鏄凡緇忔牸寮忓寲鍚庣殑Web鍐呭錛涗竴涓鍥懼悓鏃跺彲浠ュ拰澶氫釜甯姪綾誨崗鍚屽伐浣滐紝鑰屽悗鑰呴€氬父鏄敱JavaBeans鍜屾爣璁?tag)瀹炵幇鐨勩€?/P>
(3)鍊糱ean(ValueBean)銆傚€糱ean瀹為檯涓婃槸鐢ㄤ簬瀛樺偍涓棿鏁版嵁妯″瀷鐨勫府鍔╃被鐨勫彟涓€縐嶅彨娉曪紝渚嬪鍦ㄥ簭鍒楀浘5涓紝business service灝辨牴鎹姹傝繑鍥炰簡涓€涓€糱ean銆?/P>
(4)涓氬姟鏈嶅姟(business service)銆備笟鍔℃湇鍔℃槸鎸囩敤鎴瘋瘯鍥懼緱鍒扮殑錛屽簲鐢ㄧ郴緇熷彲浠ユ彁渚涚殑鐩稿叧鏈嶅姟錛涢€氬父鏉ヨ錛屼笟鍔℃湇鍔″彲浠ラ€氳繃涓€涓笟鍔′唬琛?business delegate)鏉ヨ闂紝鑰屽悗鑰呬富瑕佹槸鎻愪緵瀵逛簬涓氬姟鏈嶅姟鐨勬帶鍒跺拰淇濇姢銆?/P>
鍦ㄥ簲鐢ㄧ郴緇熺殑瑙嗗浘妯″潡涓嬌鐢ㄥ府鍔╃被鍙互灝嗕笉鍚岀殑紼嬪簭閫昏緫寰堝ソ鍦板垎紱誨紑鏉ワ紝騫跺湪瑙嗗浘妯″潡涔嬪涓哄紑鍙戜漢鍛樻彁渚涜璁$▼搴忛€昏緫鐨勭┖闂達紱鍩轟簬JavaBean鍜屾爣璁?tag)鎵€寮€鍙戠殑甯姪綾婚€氬父閮藉彲浠ヨ澶氫釜瑙嗗浘妯″潡閲嶇敤錛屽洜姝や篃鎻愰珮浜嗙粍浠剁殑閲嶇敤鎬у拰鍙淮鎶ゆ€э紱鎶婃樉紺洪€昏緫浠庢暟鎹鐞嗛€昏緫鍒嗙鍑烘潵錛屼篃鏈夊埄浜庡紑鍙戝洟闃熶腑瑙掕壊鍙婁漢鐗╃殑鍒掑垎錛涙瘮濡傝錛屽鏋滃悇縐嶇▼搴忛€昏緫榪囦簬緇撳悎鐨勮瘽錛岃蔣浠跺紑鍙戜漢鍛樺彲鑳介渶瑕佸湪HTML錛岀綉欏典腑淇敼浠g爜鑰學eb璁捐甯堝垯闇€瑕佸湪澶勭悊鏁版嵁璁塊棶鐨凧SP涓慨鏀歸〉闈㈠竷緗紝榪欎簺鎯呭喌閮藉彲鑳戒細瀵艱嚧緋葷粺璁捐鍜屽紑鍙戜腑鐢變簬涓嶅悓鎶€鏈漢鍛樼殑浠嬪叆錛岃€屼駭鐢熺浉鍏崇殑闂銆?BR>
5銆佷細璇濋潰
浼氳瘽闈?session facade)妯″紡鍦ㄥ悎浣滅殑浼佷笟瀵硅薄闂磋皟鑺傛搷浣滐紝騫跺皢搴旂敤鍑芥暟鍚堟垚涓€涓崟涓€綆€鍗曠殑鐣岄潰錛涘畠鍑忓皯浜嗙被涔嬮棿鍚堜綔鐨勫鏉傛€э紝騫朵嬌寰楃被鐨勮皟鐢ㄨ€呭湪璇ョ被鍙樺寲鐨勬椂鍊欐棤闇€鏀瑰姩錛岃繖縐嶆ā寮忛€氬父浠ヤ竴涓細璇漛ean瀹炵幇錛屼互鐢ㄦ潵闅愯棌搴曞眰ejb鐨勫鏉備氦浜掋€?/P>
榪欑璁捐妯″紡鍑虹幇鐨勮儗鏅湪浜嶦JB閫氬父鏃㈠寘鎷▼搴忔暟鎹紝鍙堝寘鎷▼搴忛€昏緫錛岃€岃繖浜涗唬鐮侀兘浼氶€氳繃涓€瀹氱殑鐣岄潰浣滅敤浜庡鎴峰眰錛屽湪澶氬眰嬈$殑J2EE騫沖彴搴旂敤紼嬪簭涓紝灝變細閫犳垚涓€瀹氱殑鍥伴毦銆?/P>
鍏蜂綋鏉ヨ錛屽湪J2EE騫沖彴涓婄殑澶氬眰嬈$郴緇熶腑錛岄€氬父浼氬瓨鍦ㄤ互涓嬬殑闂錛?/P>
(1)灞傛涔嬮棿鑱旂郴榪囦簬绱у瘑錛屽鎴峰眰鍜屽悗绔殑涓氬姟瀵硅薄鍏鋒湁杈冨己鐨勪緷璧栧叧緋伙紱
(2)鍦ㄥ鎴峰拰鏈嶅姟鍣ㄤ箣闂存湁澶氭鏂規硶璋冪敤錛屽洜鑰屽鑷翠簡Web鎬ц兘鏂歸潰鐨勯棶棰橈紱
(3)緙轟箯涓€瀹氱殑瀹㈡埛璁塊棶鏈哄埗錛屼嬌寰椾竴浜涘悗鍙板璞¤闅忎究璁塊棶銆?/P>
涓€涓灞傛鐨凧2EE搴旂敤紼嬪簭閫氬父鍏鋒湁寰堝鐢盓JB瀹炵幇鐨勬湇鍔″櫒绔璞★紝瀹冧滑閫氬父璐熻矗鎻愪緵緋葷粺鏈嶅姟銆佹暟鎹俊鎭瓑錛屼篃灝辨槸璇翠綔涓轟笟鍔″璞★紝瀹冧滑鏃㈠寘鎷浉鍏崇殑紼嬪簭鏁版嵁錛屼篃鍖呮嫭鍏剁▼搴忛€昏緫錛涘湪J2EE搴旂敤緋葷粺涓紝璐熻矗紼嬪簭閫昏緫鐨勫璞¢€氬父鐢變細璇漛ean瀹炵幇錛岃€岃〃紺烘寔涔呮€у瓨鍌紝騫跺湪澶氫釜鐢ㄦ埛闂村叡浜殑瀵硅薄鍒欑敱瀹炰綋bean鏉ュ疄鐜幫紱褰撶劧錛屽簲鐢ㄧ郴緇熺殑鐢ㄦ埛闇€瑕佽闂紒涓氬璞℃潵婊¤凍鑷繁鐨勯渶姹傦紝濡傛灉浼佷笟瀵硅薄鍚戠敤鎴鋒彁渚涙帴鍙o紝鐢ㄦ埛鍙互鐩存帴鍦頒笌鐩稿叧瀵硅薄閫氫俊錛屼絾鏄繖鏍蜂竴鏉ワ紝鐢ㄦ埛蹇呴』璐熻矗綆$悊鎵€璋冪敤鐨勪紒涓氬璞′箣闂寸殑鍏崇郴錛屽茍涓旇兘澶熷鐞嗗叾闂寸殑涓氬姟嫻佺▼錛涚劧鑰岋紝濡傛灉鐢ㄦ埛鍜屼笟鍔″璞′箣闂村瓨鍦ㄨ繃浜庣洿鎺ョ殑浜や簰錛屼袱鑰呯殑鑱旂郴灝變細榪囦簬绱у瘑錛屽悓鏃朵篃浣垮緱鐢ㄦ埛榪囦簬渚濊禆浼佷笟瀵硅薄鐨勫叿浣撳疄鐜幫紝騫惰礋璐g鐞嗕笌浜や簰榪囩▼鏈夊叧鐨勪笟鍔″璞℃煡鎵懼拰鍒涘緩錛屼互鍙婁笉鍚岀殑瀵硅薄闂寸浉浜掕皟鐢ㄧ殑鍏崇郴錛岀敋鑷充竴浜涙椂鍊欑敤鎴瘋繕闇€瑕佺鐞嗗嬈¤皟鐢ㄤ箣闂寸殑浜嬪姟綆$悊鐜妭銆?/P>
鍦ㄧ敤鎴烽渶姹備笉鏂鍔犳椂錛岃繖涔熸槸搴旂敤緋葷粺緇忓父鍙戠敓鐨勬儏鍐碉紝鐢ㄦ埛涓庝笉鍚岀殑浼佷笟瀵硅薄涔嬮棿鐨勪氦浜掍篃浼氬彉寰楄秺鏉ヨ秺澶嶆潅錛岃€屼紒涓氬璞″彲鑳介渶瑕佷竴瀹氬唴閮ㄧ殑鏇存柊鎵嶈兘婊¤凍鍓嶈€呯殑闇€瑕侊紝浣嗘槸榪欐牱鐨勮瘽鐢ㄦ埛鍙堥渶瑕佹牴鎹紒涓氬璞″疄鐜扮殑鍙樺寲鑰屽仛鍑虹浉搴旂殑鏀瑰彉錛岃繖縐嶆儏鍐靛皢涓哄簲鐢ㄧ郴緇熷甫鏉ョ浉褰撳ぇ鐨勯夯鐑︼紱鍦ㄨ闂瓻JB搴旂敤緋葷粺鏃訛紝鐢ㄦ埛闇€瑕佷笌榪滅▼瀵硅薄榪涜浜や簰銆傚鏋滅敤鎴風洿鎺ヤ笌鎵€鏈夌浉鍏崇殑涓氬姟瀵硅薄浜や簰鐨勮瘽錛屽皢甯︽潵寰堝ぇ鐨刉eb璐熸媴錛涘洜涓哄浜庢瘡涓€涓猠jb鐨勬縺媧伙紝閮藉皢浜х敓涓€嬈¤繙紼嬬殑璋冪敤錛岃€屽鏋滃瓨鍦ㄥぇ閲忕殑緋葷粺鐢ㄦ埛錛岀敤鎴蜂笌瀵硅薄闂寸殑浜や簰灝卞皢涓篧eb閫氫俊甯︽潵寰堝ぇ鐨勫帇鍔涳紝浣跨郴緇熸€ц兘鍙楀埌寰堝ぇ鐮村潖錛涘鏋滅敤鎴峰彲浠ョ洿鎺ヨ闂悗绔殑浼佷笟瀵硅薄錛屼絾鏄郴緇熶腑鍙堢己灝戜竴涓粺涓€鐨勭敤鎴瘋闂満鍒訛紝閭d箞榪欎簺璁塊棶寰堟湁鍙兘鍙樺緱鏉備貢鏃犵珷錛屽紩璧風郴緇熸€ц兘鐨勪笅闄嶏紝鐢氳嚦瀵艱嚧涓€浜涘畨鍏ㄩ棶棰樸€?/P>
涓轟簡瑙e喅浠ヤ笂鐨勯棶棰橈紝寮€鍙戜漢鍛樺彲浠ラ噰鐢ㄤ細璇濋潰鐨勮璁℃ā寮忥紝鍗充嬌鐢ㄤ細璇漛ean鏉ュ疄鐜頒竴涓潰(facade)鏉ュ寘鍚竴涓伐浣滄祦涓墍鏈夌浉鍏沖璞$殑浜や簰錛涜繖涓細璇濋潰璐熻矗綆$悊涓氬姟瀵硅薄錛屽茍鍚戠敤鎴鋒彁渚涗竴涓粺涓€鐨勬湇鍔¤闂眰錛屼細璇濋潰鍙互闈㈠悜搴曞眰瀵硅薄鐨勪氦浜掕繃紼嬶紝騫舵彁渚涗竴涓粎浠呭寘鍚繀欏繪彁渚涚殑鎺ュ彛鐨勬湇鍔″眰錛岀敱姝ゅ畠灝嗗鏉傜殑瀵硅薄浜や簰鍜岀敤鎴蜂箣闂撮殧紱誨紑鏉ワ紱 浼氳瘽闈篃璐熻矗綆$悊浼佷笟鏁版嵁鍜屼紒涓氬璞′箣闂寸殑浜や簰錛屽茍琛ㄨ揪鍏朵腑闇€瑕佺殑浼佷笟閫昏緫錛屽洜姝や細璇濋潰涔熷彲浠ョ鐞嗕紒涓氬璞′箣闂寸殑浣滅敤鍏崇郴錛涘悓鏃訛紝鏍規嵁宸ヤ綔嫻佺殑闇€瑕侊紝浼氳瘽闈篃綆$悊瀵硅薄鐨勫垱寤恒€佹煡鎵俱€佷慨鏀瑰拰鍒犻櫎銆?/P>
鍦ㄤ竴涓鏉傜殑搴旂敤緋葷粺涓紝浼氳瘽闈㈠彲浠ュ皢鍏剁敓鍛藉懆鏈熺殑綆$悊涓嬫斁鍒頒竴涓崟鐙殑甯姪瀵硅薄鍘伙紝姣斿璇達紝浼氳瘽闈㈠彲浠ュ皢綆$悊浼氳瘽鍜屽疄浣揵ean鐢熷懡鍛ㄦ湡鐨勫伐浣滀氦緇欐湇鍔″畾浣嶅璞★紱 鍚屾椂錛屽湪搴旂敤緋葷粺涓紝媯€鏌ヤ笟鍔″璞′箣闂寸殑浣滅敤鍏崇郴涔熸槸闈炲父閲嶈鐨勶紝涓€浜涘叧緋誨彲鑳芥槸鏆傛椂鐨勶紝鍗沖彧浣跨敤浜庝竴瀹氱殑浜や簰榪囩▼錛岃€屽彟澶栦竴浜涘叧緋誨垯鏄案涔呯殑錛屾殏鏃剁殑鍏崇郴閫傚悎寤烘ā浜庝細璇濋潰涓殑宸ヤ綔嫻侊紝姘鎬箙鐨勫叧緋誨垯闇€瑕佸叿浣撴儏鍐靛叿浣撳垎鏋愩€?/P>
鍥?涓殑綾誨浘綆€瑕佹弿榪頒簡浼氳瘽闈㈢殑璁捐妯″紡錛屽浘7緇欏嚭浜嗕細璇濋潰鐨勫簭鍒楄〃紺猴紝鍗沖弬涓庣粍浠跺強鍏朵氦浜掑叧緋匯€?/P>
鍥? 浼氳瘽闈㈢被鍥?/P>
鍥?浼氳瘽闈㈠簭鍒楀浘
榪欓噷鎴戜滑瀵逛簬鍥?鐨勫悇涓粍浠跺姞浠ョ畝瑕佺殑浠嬬粛錛?/P>
(1)瀹㈡埛(Client)銆傝繖琛ㄧず浼氳瘽闈㈢殑瀹㈡埛錛屽嵆闇€瑕佽闂浉鍏充紒涓氭湇鍔$殑瀹㈡埛绔簲鐢ㄧ▼搴忥紝褰撶劧涔熷彲浠ユ槸鍦ㄥ悓涓€灞傞潰鎴栦笉鍚屽眰闈㈢殑鍙﹀涓€涓細璇漛ean銆?/P>
(2)浼氳瘽闈?Session Facade)銆備細璇濋潰閫氬父鏄敤浼氳瘽bean鏉ュ疄鐜扮殑錛屽畠綆$悊鐫€澶氫釜浼佷笟瀵硅薄鐨勪綔鐢ㄥ叧緋誨茍鎻愪緵涓€涓珮灞傛鐨勬娊璞$晫闈㈢粰鐢ㄦ埛銆?/P>
(3)涓氬姟瀵硅薄(Business Object)銆備笟鍔″璞℃槸涓€涓彲浠ヤ嬌鐢ㄥ涓笉鍚岃璁℃柟妗堢殑瀵硅薄錛屼緥濡備細璇漛ean銆佸疄浣揵ean鍜屾暟鎹闂璞°€傚湪鍥?涓笟鍔″璞¤礋璐f彁渚涙暟鎹拰鏈嶅姟錛岃€屼細璇濋潰鍒欓渶瑕佷笌澶氫釜涓氬姟瀵硅薄瀹炰緥浜や簰鑰岃幏寰楃浉搴旂殑鏈嶅姟銆?/P>
浼氳瘽闈㈠疄闄呬笂灝辨槸涓氬姟灞傜殑涓€涓帶鍒跺璞★紝瀹冭礋璐f帶鍒剁敤鎴蜂笌浼佷笟鏁版嵁鍜屼紒涓氭湇鍔″璞′箣闂寸殑浜や簰錛涘湪涓€涓鏉傜殑搴旂敤緋葷粺涓紝鐢氳嚦鍙兘浼氭湁澶氫釜浼氳瘽闈綔涓虹敤鎴峰拰瀵硅薄妯″潡涔嬮棿鐨勪腑浠嬨€?/P>
涓嬮潰浠嬬粛涓ょ瀹炵幇浼氳瘽闈㈢殑甯歌鏂規硶銆?/P>
(1)鏃犵姸鎬佺殑浼氳瘽闈?/B>
鍦ㄥ疄鐜頒細璇濋潰鐨勬椂鍊欙紝棣栧厛搴旇鍐沖畾鏄敤鐘舵€佸寲榪樻槸鏃犵姸鎬佺殑浼氳瘽bean鏉ュ疄鐜幫紝榪欎富瑕佸彇鍐充簬浼氳瘽闈㈡墍寤烘ā鐨勪笟鍔℃祦紼嬶紱濡傛灉涓€涓笟鍔℃祦紼嬪彧闇€瑕佷竴嬈℃柟娉曡皟鐢ㄥ氨鍙互瀹炵幇鍏舵湇鍔★紝閭d箞灝卞彲浠ヤ嬌鐢ㄦ棤鐘舵€佺殑浼氳瘽bean鏉ュ疄鐜板畠銆?/P>
(2)鐘舵€佸寲鐨勪細璇濋潰
褰撲竴涓笟鍔℃祦紼嬮渶瑕佸嬈℃柟娉曡皟鐢ㄦ潵瀹炵幇鍏舵湇鍔℃椂錛屽紑鍙戜漢鍛樻渶濂戒嬌鐢ㄧ姸鎬佸寲鐨勪細璇漛ean鏉ュ疄鐜拌繖涓€嫻佺▼錛屽洜涓烘瘡嬈℃柟娉曡皟鐢ㄧ殑鐘舵€佷俊鎭兘蹇呴』鍦ㄤ細璇漛ean涓繚瀛樸€?/P>
閫氳繃鍦ㄥ簲鐢ㄧ郴緇熶腑閲囩敤浼氳瘽闈㈢殑璁捐妯″紡錛屽皢鍦ㄧ郴緇熶腑寰楀埌浠ヤ笅鐨勬敹鐩婏細
鈶犱負鐢ㄦ埛鎻愪緵涓€涓畝鍗曠殑鎺ュ彛錛屽茍闅愯棌鎵€鏈変笌緋葷粺緇勪歡澶嶆潅鐨勪氦浜掕繃紼嬶紱
鈶″噺灝戞毚闇茬粰鐢ㄦ埛鐨勪紒涓氬璞★紝浠庤€岄檷浣庡畠浠箣闂寸殑渚濊禆鍏崇郴錛?/P>
鈶㈠悜鐢ㄦ埛闅愯棌緋葷粺緇勪歡闂寸殑浜や簰榪囩▼鍜屼緷璧栧叧緋伙紝浠庤€屼嬌寰楃郴緇熸洿鍔犲鏄撶鐞嗭紝騫舵彁渚涚浉褰撶殑鐏墊椿鎬э紱鎻愪緵涓€濂楃粺涓€鐨勭敤鎴瘋闂満鍒訛紝渚夸簬綆$悊鐢ㄦ埛瀵逛簬緋葷粺鏈嶅姟鐨勮姹備笌璁塊棶銆?/P>