锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av午夜成人片精品电影,亚洲第一永久在线观看,久久久无码精品亚洲日韩京东传媒 http://www.tkk7.com/mstar/category/2359.html鎼炶蔣浠跺紑鍙戝氨鍍忚寮哄ジ,濡傛灉涓嶈兘鍙嶆姉,灝變韓鍙楀畠鍚э紒 zh-cn Tue, 27 Feb 2007 18:34:38 GMT Tue, 27 Feb 2007 18:34:38 GMT 60 鐢―WR2.0鍋氱殑涓涓猄erver鏃ュ織鏌ョ湅鍣?/title> http://www.tkk7.com/mstar/archive/2007/01/03/Ajax_DWR2_LogViewer.html榛戠伒 榛戠伒 Wed, 03 Jan 2007 14:21:00 GMT http://www.tkk7.com/mstar/archive/2007/01/03/Ajax_DWR2_LogViewer.html http://www.tkk7.com/mstar/comments/91645.html http://www.tkk7.com/mstar/archive/2007/01/03/Ajax_DWR2_LogViewer.html#Feedback 4 http://www.tkk7.com/mstar/comments/commentRss/91645.html http://www.tkk7.com/mstar/services/trackbacks/91645.html 鏈夋椂鍊欐垜闇瑕佹煡鐪嬪凡緇忛儴緗插埌鏈嶅姟鍣ㄤ笂鐨勫簲鐢ㄧ▼搴忕殑鏃ュ織錛屾瘡嬈¢兘瑕佽繙紼嬬櫥褰曟湇鍔″櫒鎰熻寰堥夯鐑︼紝鎵浠ヤ竴鑸垜浼氭妸log鏂囦歡鐨勭洰褰曠敤apache鍋氫釜緗戠珯錛岃繖鏍烽氳繃IE灝卞彲浠ヨ闂埌浜嗐備絾鏄湁鏃惰鐪嬪嵆鏃惰緭鍑烘儏鍐碉紝灝辮涓嶆柇鐨凢5錛屽緢楹葷儲銆傛墍浠ュ氨鏈変釜鎯蟲硶錛屼笉濡傜敤DWR2.0鐨勫弽杞珹jax鏉ュ仛涓▼搴忥紝璁╂棩蹇楁湁鍙樺寲鏃惰嚜鍔ㄧ殑鍙戦佸埌瀹㈡埛绔紝榪欐牱灝辨垜涓涓姴鐨勬寜F5浜嗐?br /> 鎴戜笅闈㈠氨鎶婅繖涓▼搴忓垎浜粰澶у錛屽笇鏈涘ぇ瀹舵彁鎻愭剰瑙併?br /> 棣栧厛鏄幆澧冿細 DWR 2.0.rc1 Sun JDK 1.5 鍏堢湅寮犺繍琛岃搗鏉ョ殑鍥懼惂錛屽ぇ瀹朵竴鐪嬪氨鐭ラ亾榪欐槸涓粈涔堜笢瑗夸簡銆?br /> 浣犲彲浠ュ埗瀹氳鐩戣鐨刲og鏂囦歡錛屽綋鐒舵湁鍝簺鏂囦歡鏂囦歡鍙互琚洃瑙嗭紝浣犲繀欏誨湪鏈嶅姟绔殑xml閰嶇疆涓枃浠惰緗紝褰撶劧浣犱篃鍙互鐩戣涓涓洰褰曢噷鐨刲og鏂囦歡錛岃繖瀵逛簬鑰宭og鏂囦歡鏄瘡澶╃敓鎴愪竴涓殑鎯呭喌寰堟湁鐢ㄣ備綘鍙互璁懼畾鍦ㄦ祻瑙堝櫒涓婃樉紺虹殑琛屾暟錛屾搷浣滆鏁幫紝灞忓箷浼氳嚜鍔ㄦ粴鍔ㄣ備綘榪樺彲浠ユ坊鍔犱竴浜涜繃婊ゅ櫒錛岃繃婊ゆ帀涓嶆兂鐪嬭鐨勮錛屾垜鐩墠鍙仛浜嗗埌浜嗚繃婊ゆ帀涓浜涗俊鎭紝褰撶劧濡傛灉浣犳湁鍏磋叮錛屼綘涔熷啀娣誨姞涓浜涙洿澶嶆潅鐨勮繃婊ゅ櫒銆傝繃婊ゅ櫒鐨勬ā寮忔槸鐢ㄦ鍒欒〃杈懼紡琛ㄧず鐨勩?br /> 涓嬮潰鏄偣鍑燴滃紑濮嬬洃鍚濓紝榪愯鍚庢牱瀛?br /> 濡傛灉鏈嶅姟鍣ㄤ笂鐨刢atalina.2006-12-09.log鏂囦歡鍙戠敓鍙樺寲錛屽鎴風鐨勬祻瑙堝櫒涓妉og鏄劇ず鍖轟篃浼氳嚜鍔ㄧ殑鍚戜笂婊氬姩銆?br /> 涓嬮潰鎴戝氨澶ц嚧鐨勪粙緇嶄竴涓嬪浣曠敤DWR2.0鏉ュ疄鐜拌繖鏍風殑鍔熻兘銆傚湪榪欓噷浠嬬粛鐨勫彲鑳戒笉鏄緢璇︾粏錛屼笉娓呮鐨勫湴鏂硅鐪嬫垜鎻愪緵鐨勬簮鐮併?br /> 鍏堟潵浠嬬粛涓涓嬬洰褰曠粨鏋?br />鈹溾攢lib聽 -- 緙栬瘧鍜屾祴璇曠敤鐨勭涓夋柟綾誨簱 鈹溾攢webapp -- 閮ㄧ講鐩綍 鈹溾攢test -- 嫻嬭瘯紼嬪簭 鈹溾攢java -- 涓葷▼搴?br />鈹斺攢build.xml -- ant鏋勫緩鏂囦歡 webapp涓嬬殑鏂囦歡鍜岀洰褰?br />鈹偮?style.css聽 -- 鏍峰紡琛ㄦ枃浠?br />鈹偮?index.html -- 涓葷敾闈㈡枃浠?br />鈹?br />鈹溾攢WEB-INF 鈹偮?鈹偮?web.xml -- 閮ㄧ講閰嶇疆鏂囦歡 鈹偮?鈹偮?dwr.xml -- dwr鐨勯厤緗枃浠?br />鈹偮?鈹偮?conf.xml -- 鎴戜滑榪欎釜搴旂敤紼嬪簭閰嶇疆鏂囦歡錛屼富瑕佹槸閰嶇疆log鏂囦歡 鈹偮?鈹?br />鈹偮?鈹溾攢classes 鈹偮?鈹?br />鈹偮?鈹斺攢lib 鈹?br />鈹斺攢script -- javascript鏂囦歡 index.html涓氨鏄垜浠笂闈㈢殑鍥劇墖涓婅兘鐪嬪埌鐨勯〉闈㈠厓绱犮傚叾涓殑鎺т歡鐨勪簨浠跺鐞嗛兘鍐欏湪\script\logviewer.js鏂囦歡涓?br />
褰撻〉闈㈠姞杞芥椂鎵цstartPoll()鏂規(guī)硶錛屽鏉傚紑濮嬩笌鏈嶅姟鍣ㄧ殑閫氫俊錛屽茍涓旀妸log鏂囦歡閫夋嫨妗嗗垵濮嬪寲錛屾妸宸茬粡娣誨姞榪囨護鍣ㄥ垪琛ㄦ樉紺哄嚭鏉ャ?
function
聽startPoll()聽{ 聽聽聽聽DWREngine.setActiveReverseAjax(
true
); 聽聽聽聽LogManager.getLogFileNames(
function
聽(data)聽{ 聽聽聽聽聽聽聽聽DWRUtil.removeAllOptions(
"
log_file
"
); 聽聽聽聽聽聽聽聽DWRUtil.addOptions(
"
log_file
"
,聽data); 聽聽聽聽}); 聽聽聽聽LogManager.getFilters(
function
(data)聽{ 聽聽聽聽聽聽聽聽
for
聽(
var
聽i聽
=
聽
0
;聽i聽
<
聽data.length;聽i
++
)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽addFilterDiv(data[i].pattern,聽data[i].id); 聽聽聽聽聽聽聽聽} 聽聽聽聽}); }
褰撶偣鍑燴滃紑濮嬬洃鍚濇寜閽椂璋冪敤鏈嶅姟绔殑LogManager鐨剆end鏂規(guī)硶錛屾湇鍔$寮鍚洃鍚嚎紼嬶紝寮濮嬬洃鍚仛涓哄弬鏁頒紶閫掔殑鏂囦歡錛屽鏋滄枃浠舵湁鍙樺姩灝變細鎶婃渶榪戝鍔犵殑琛屽彂閫佸埌嫻忚鍣ㄤ笂鏉ャ?
var
聽startWatch聽
=
聽
function
()聽{ 聽聽聽聽clearLog(); 聽聽聽聽LogManager.send(DWRUtil.getValue(
"
log_file
"
)); }
褰撶偣鍑燴滅粨鏉熺洃鍚濇寜閽紝璋冪敤LogManager鐨剆top()鏂規(guī)硶錛岀粨鏉熸帀鐩戝惉綰跨▼銆?br />
function
聽stopWatch()聽{ 聽聽聽聽LogManager.stop(); }
褰撶偣鍑燴滄竻絀烘棩蹇椻濇寜閽紝娓呴櫎mainPanel涓殑鎵鏈夊瓙鍏冪礌
function
聽clearLog()聽{ 聽聽聽聽
var
聽mainPanel聽
=
聽$(
"
main_panel
"
); 聽聽聽聽
while
聽(mainPanel.hasChildNodes())聽{ 聽聽聽聽聽聽聽聽mainPanel.removeChild(mainPanel.firstChild); 聽聽聽聽} }
褰撶偣鍑燴滄坊鍔犺繃婊ゅ櫒鈥濓紝濉厖杈撳叆妗嗭紝瑕佹眰杈撳叆鍋氫負榪囨護鍣ㄧ殑姝e垯琛ㄨ揪寮忥紝杈撳叆瀹屾垚鍚庯紝瑕佸仛涓や歡浜嬶細 1銆丩ogManager.addFilter鏂規(guī)硶錛屾妸杈撳叆鐨勬鍒欒〃杈懼紡浼犻佺粰鏈嶅姟绔?br />2銆佹妸榪欎釜姝e垯琛ㄨ揪寮忔坊鍔犲埌欏甸潰涓娿?/p>
function
聽addFilter()聽{ 聽聽聽聽
var
聽regex聽
=
聽prompt(
"
杈撳叆姝e垯琛ㄨ揪寮?/span>
"
,聽
""
); 聽聽聽聽
if
聽(regex聽
!=
聽
null
聽
&&
聽regex聽
!=
聽
""
)聽{ 聽聽聽聽聽聽聽聽LogManager.addFilter(regex,聽
function
聽(filterId)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽addFilterDiv(regex,聽filterId); 聽聽聽聽聽聽聽聽}); 聽聽聽聽} }
娉ㄦ剰榪欓噷錛屾垜浠敤鍒頒簡DWR鐨勫洖璋冩ā寮忥紝鍦ㄨ皟鐢ㄦ湇鍔$鏂規(guī)硶LogManager.addFilter鎴愬姛鍚庢垜浠墠璋冪敤瀹㈡埛绔殑addFilterDiv鏂規(guī)硶鎶婅繖涓緭鍏ョ殑姝e垯琛ㄨ揪寮忔樉紺哄埌欏甸潰涓娿?br /> 濡傛灉浣犺凍澶熺粏蹇冪殑璇濓紝搴旇浼氬彂鐜板湪榪欎釜js鏂囦歡涓湁涓涓彨鍋歛ddNewLine鐨勬柟娉曞湪index.html涓槸娌℃湁琚皟鐢ㄧ殑銆傝繖涓柟娉曞叾瀹炴槸緇欐湇鍔$鐨凩ogManager.send鍑芥暟璋冪敤鐨勩?br /> 涓婇潰榪欎簺鍐呭灝辨槸鏈嶅姟绔剼鏈殑涓昏鍐呭浜嗭紝鍏跺疄寰堢畝鍗曘備富瑕佽礋璐i氳繃DWR涓庢湇鍔$閫氫俊鍜屽鐞嗛〉闈㈡樉紺恒?br /> 涓嬮潰浠嬬粛鏈嶅姟绔殑鏍稿績綾伙細LogManager 榪欎釜綾諱富瑕佸氨榪欐牱鍑犱釜鏂規(guī)硶錛?br />聽聽聽 /** 聽聽聽聽聽*聽鍋滄鐩戞帶 聽聽聽聽聽*/ 聽聽聽聽public 聽 void 聽stop()聽{ 聽聽聽聽聽聽聽聽 if 聽(watcher聽 != 聽 null )聽{ 聽聽聽聽聽聽聽聽聽聽聽聽watcher.halt(); 聽聽聽聽聽聽聽聽} 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽鍙戦乴og淇℃伅 聽聽聽聽聽*/ 聽聽聽聽public 聽 void 聽send(String聽filename)聽{ 聽聽聽聽聽聽聽聽WebContext聽wctx聽 = 聽WebContextFactory.get(); 聽聽聽聽聽聽聽聽 final 聽ScriptSession聽scriptSession聽 = 聽wctx.getScriptSession(); 聽聽聽聽聽聽聽聽 if 聽(watcher聽 != 聽 null )聽{ 聽聽聽聽聽聽聽聽聽聽聽聽watcher.halt(); 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽watcher聽 = 聽 new 聽LogFileWatcher(filename); 聽聽聽聽聽聽聽聽聽聽聽聽watcher.addListener( new 聽LogUpdateListener()聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public 聽 void 聽onLogUpdate(List < String > 聽lines)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for 聽(String聽line聽:聽lines)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(checkFilters(line))聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ScriptBuffer聽scriptBuffer聽 = 聽 new 聽ScriptBuffer(); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽scriptBuffer.appendScript( " addNewLine( " ) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.appendData(line) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.appendScript( " ); " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽scriptSession.addScript(scriptBuffer); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽}); 聽聽聽聽聽聽聽聽聽聽聽聽watcher.start(); 聽聽聽聽聽聽聽聽}聽 catch 聽(IOException聽e)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽ScriptBuffer聽scriptBuffer聽 = 聽 new 聽ScriptBuffer(); 聽聽聽聽聽聽聽聽聽聽聽聽scriptBuffer.appendScript( " addNewLine( " ) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.appendData(e.getMessage()) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.appendScript( " ); " ); 聽聽聽聽聽聽聽聽聽聽聽聽scriptSession.addScript(scriptBuffer); 聽聽聽聽聽聽聽聽聽聽聽聽log.warn(e); 聽聽聽聽聽聽聽聽} 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽鍙栧緱鎸囧畾鐨勬棩蹇楁枃浠惰礬寰?br />聽聽聽聽聽* 聽聽聽聽聽*聽@return 聽鎸囧畾鐨勬棩蹇楁枃浠惰礬寰?br />聽聽聽聽聽 */ 聽聽聽聽public 聽List < String > 聽getLogFileNames()聽{ 聽聽聽聽聽聽聽聽List < String > 聽filenames聽 = 聽 new 聽ArrayList < String > (); 聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽XMLConfiguration聽config聽 = 聽getConfiguration(); 聽聽聽聽聽聽聽聽聽聽聽聽List聽logfiles聽 = 聽config.getList( " log-files.file " ); 聽聽聽聽聽聽聽聽聽聽聽聽 for 聽(Object聽o聽:聽logfiles)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽filenames.add((String)聽o); 聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽}聽 catch 聽(ConfigurationException聽e)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽log.warn(e); 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 return 聽filenames; 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽鍙栧緱鎸囧畾鐨勬棩蹇楃洰褰曚笅鐨勬枃浠?br />聽聽聽聽聽* 聽聽聽聽聽*聽@return 聽鎸囧畾鐨勬棩蹇楃洰褰曚笅鐨勬枃浠?br />聽聽聽聽聽 */ 聽聽聽聽public 聽List < String > 聽getLogFileNamesFromDir()聽{ 聽聽聽聽聽聽聽聽List < String > 聽filenames聽 = 聽 new 聽ArrayList < String > (); 聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽XMLConfiguration聽config聽 = 聽getConfiguration(); 聽聽聽聽聽聽聽聽聽聽聽聽String聽dir聽 = 聽config.getString( " log-dir.dir " ); 聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(dir聽 != 聽 null )聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽File聽rootDir聽 = 聽 new 聽File(dir); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(rootDir.exists())聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(rootDir.isFile())聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽filenames.add(rootDir.getPath().replace( ' \\ ' ,聽 ' / ' )); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽 else 聽 if 聽(rootDir.isDirectory())聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽String聽patternString聽 = 聽config.getString( " log-dir.filter " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽File[]聽files; 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(patternString聽 != 聽 null 聽 && 聽 ! patternString.equals( "" ))聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽files聽 = 聽rootDir.listFiles( new 聽LogFileFilter(patternString)); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽 else 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽files聽 = 聽rootDir.listFiles(); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for 聽(File聽file聽:聽files)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽filenames.add(file.getPath().replace( ' \\ ' ,聽 ' / ' )); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽}聽 catch 聽(ConfigurationException聽e)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽log.warn(e); 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 return 聽filenames; 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽娣誨姞涓涓繃婊ゅ櫒錛岃繑鍥炶繃婊ゅ櫒鐨刬d 聽聽聽聽聽*/ 聽聽聽聽public 聽 int 聽addFilter(String聽regex)聽{ 聽聽聽聽聽聽聽聽 synchronized 聽(filters)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽Filter聽filter聽 = 聽 new 聽Filter(regex,聽SequenceGenerator.getInstance().next(),聽FilterType.INCLUDE); 聽聽聽聽聽聽聽聽聽聽聽聽filters.add(filter); 聽聽聽聽聽聽聽聽聽聽聽聽 return 聽filter.getId(); 聽聽聽聽聽聽聽聽} 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽鏍規(guī)嵁id鍒犻櫎涓涓繃婊ゅ櫒 聽聽聽聽聽*/ 聽聽聽聽public 聽 void 聽removeFilter( int 聽id)聽{ 聽聽聽聽聽聽聽聽 synchronized 聽(filters)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽filters.remove( new 聽Filter(id)); 聽聽聽聽聽聽聽聽} 聽聽聽聽} 聽聽聽聽 /** 聽聽聽聽聽*聽鍙栧緱鐜板湪鎵鏈夌殑榪囨護鍣ㄥ垪琛?br />聽聽聽聽聽*/ 聽聽聽聽public 聽List < Map < String,聽Object >> 聽getFilters()聽{ 聽聽聽聽聽聽聽聽List < Map < String,聽Object >> 聽result聽 = 聽 new 聽ArrayList < Map < String,聽Object >> (); 聽聽聽聽聽聽聽聽 synchronized 聽(filters)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽 for 聽(Filter聽filter聽:聽filters)聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Map < String,聽Object > 聽filterItem聽 = 聽 new 聽HashMap < String,聽Object > (); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽filterItem.put( " id " ,聽filter.getId()); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽filterItem.put( " pattern " ,聽filter.getPattern().pattern()); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽result.add(filterItem); 聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 return 聽result; 聽聽聽聽}
瀵逛簬澶у閮藉仛榪嘕ava鐨勬湅鍙嬫潵璇達紝榪欎簺浠g爜搴旇寰堝鏄撳氨鑳界湅鎳傦紝鎴戝氨涓嶅璇翠簡銆傚ぇ瀹朵富瑕佹敞鎰忎竴涓婼criptSession綾伙紝榪欎釜綾誨氨鏄搗鍒頒富瑕佸姛鑳界殑綾諱簡銆?br /> 鍏朵腑鐨凩ogFileWatcher鏄竴涓猅hread綾伙紝瀹冩槸鐢ㄦ潵鐩戣log鏂囦歡鐨勩?br /> SequenceGenerator.java鏄敤鏉ョ敓鎴愯繃婊ゅ櫒鐨刬d鐨勩?br /> LogUpdateListener.java鏄竴涓帴鍙o紝鐢ㄤ簬瀹炵幇浜嬩歡鍥炶皟鐨勩?br /> 鐒跺悗鐪嬩竴涓猟wr鐨勯厤緗枃浠?br />< dwr > 聽聽聽聽< allow > 聽聽聽聽聽聽聽聽< create聽 creator ="new" 聽javascript ="LogManager" 聽scope ="session" > 聽聽聽聽聽聽聽聽聽聽聽聽< param聽 name ="class" 聽value ="org.devside.logviewer.LogManager" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="send" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="stop" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="getLogFileNames" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="getLogFileNamesFromDir" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="addFilter" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="removeFilter" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="getFilters" /> 聽聽聽聽聽聽聽聽</ create > 聽聽聽聽</ allow > </ dwr >
榪欓噷鐨勯厤緗枃浠跺拰1.x鍑犱箮娌′粈涔堜袱鏍鳳紝灝辨槸scope鎴戣繖閲岃緗垚浜唖ession鑼冨洿鐨勩傝繖鏍峰氨鍙互澶氫釜浜哄悓鏃剁洃瑙嗕笉鍚岀殑log鏂囦歡浜嗐?br /> web.xml鏂囦歡涔熷熀鏈笂鏄佹牱瀛?br /><? xml聽version="1.0"聽encoding="UTF-8" ?> < web-app聽 id ="LogViewer" 聽version ="2.4" 聽聽聽聽聽聽聽聽聽xmlns="http://java.sun.com/xml/ns/j2ee" 聽聽聽聽聽聽聽聽聽xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 聽聽聽聽聽聽聽聽聽xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee聽http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > 聽聽聽聽< display-name > Web聽Log聽Viewer </ display-name > 聽聽聽聽< servlet > 聽聽聽聽聽聽聽聽< description > Direct聽Web聽Remoter聽Servlet </ description > 聽聽聽聽聽聽聽聽< display-name > DWR聽Servlet </ display-name > 聽聽聽聽聽聽聽聽< servlet-name > dwr-invoker </ servlet-name > 聽聽聽聽聽聽聽聽< servlet-class > org.directwebremoting.servlet.DwrServlet </ servlet-class > 聽聽聽聽聽聽聽聽< init-param > 聽聽聽聽聽聽聽聽聽聽聽聽< param-name > debug </ param-name > 聽聽聽聽聽聽聽聽聽聽聽聽< param-value > true </ param-value > 聽聽聽聽聽聽聽聽</ init-param > 聽聽聽聽聽聽聽聽< init-param > 聽聽聽聽聽聽聽聽聽聽聽聽< param-name > pollAndCometEnabled </ param-name > 聽聽聽聽聽聽聽聽聽聽聽聽< param-value > true </ param-value > 聽聽聽聽聽聽聽聽</ init-param > 聽聽聽聽聽聽聽聽< load-on-startup > 1 </ load-on-startup > 聽聽聽聽</ servlet > 聽聽聽聽< servlet-mapping > 聽聽聽聽聽聽聽聽< servlet-name > dwr-invoker </ servlet-name > 聽聽聽聽聽聽聽聽< url-pattern > /dwr/* </ url-pattern > 聽聽聽聽</ servlet-mapping > 聽聽聽聽< welcome-file-list > 聽聽聽聽聽聽聽聽< welcome-file > index.html </ welcome-file > 聽聽聽聽</ welcome-file-list > </ web-app >
dwr鐨勫寘鍚嶅彂鐢熶簡鍙樺寲錛屽茍涓旇寮鍚弽杞琣jax錛屽氨瑕佹妸pollAndCometEnabled鍙傛暟璁劇疆涓簍rue銆?br /> 鎬葷粨錛屾諱綋鏉ヨDWR2.0涓殑鍙嶈漿ajax榪樻槸寰堝鏄撲嬌鐢ㄧ殑錛岃繖涔熸槸dwr鐨勪竴璐鏍鹼紝涓嶇敤鐭ラ亾榪囧鐨勭粏鑺傚氨鑳藉鏄撶殑瀹炵幇ajax銆俤wr緇濆鏄疛ava寮鍙戣呯殑棣栭塧jax妗嗘灦銆?br />鍙﹀鎴戣繖涓▼搴忓叾瀹炶繕鏄負浜嗘紨紺虹敤鐨勶紝濡傛灉鎯寵鐢ㄦ埛瀹為檯寮鍙戝彲鑳借繕闇瑕佷慨鏀癸紝姣斿瀹夊叏鎬т笂闈紝鎬ц兘涓婇潰銆傝屾ц兘涓婇潰鐨勪富瑕侀棶棰樻槸瀹㈡埛绔祻瑙堝櫒錛屽鏋滄湇鍔$鐨刲og鏂囦歡榪囧ぇ錛岃屾祻瑙堝櫒鏈変笉鑳藉嵆鏃剁殑鍥炴敹鍐呭瓨錛屽氨浼氶犳垚瀹㈡埛绔祻瑙堝櫒鍐呭瓨鍗犵敤榪囧ぇ鑰屾鎺夌殑闂銆傝屾湇鍔$鐢變簬java鐨勫唴瀹瑰洖鏀舵満鍒跺凡緇忔瘮杈冩垚鐔熷簲璇ヤ笉浼氭湁浠涔堥棶棰樸傛垜鍦╥e6鍜宖irefox2閮借瘯榪囦簡錛宖irefox鏁堟灉鑳藉ソ涓浜涖?br /> 婧愮爜涓嬭澆錛?br />http://www.tkk7.com/Files/mstar/LogViewer.part1.rar http://www.tkk7.com/Files/mstar/LogViewer.part2.rar ]]>鎶奃WR鐨勯厤緗啓鍒癝pring鐨勯厤緗枃浠墮噷錛圫pring2 鏂扮壒鎬?鑷畾涔塻chema鍒濅綋楠岋級 http://www.tkk7.com/mstar/archive/2006/11/16/81542.html榛戠伒 榛戠伒 Thu, 16 Nov 2006 07:50:00 GMT http://www.tkk7.com/mstar/archive/2006/11/16/81542.html http://www.tkk7.com/mstar/comments/81542.html http://www.tkk7.com/mstar/archive/2006/11/16/81542.html#Feedback 5 http://www.tkk7.com/mstar/comments/commentRss/81542.html http://www.tkk7.com/mstar/services/trackbacks/81542.html 浣犺鐭ラ亾Spring鏄粈涔堬紝騫朵笖瑕佺煡閬揝pring宸茬粡鍑轟簡2.0鐨勭増鏈簡銆?br />浣犺鐭ラ亾DWR鏄粈涔堬紝騫朵笖瑕佺煡閬揇WR涔熻鍑?.0鐨勭増鏈簡銆?br /> 鍛靛懙錛屽紑涓帺絎戔︹︺傝繖騫村ご鍦˙logJava涓婃販鐨勶紝浼拌娌″嚑涓笉鐭ラ亾涓婇潰榪欎袱涓」浜嗐?br /> 濂戒簡錛岀幇鍦ㄨ█褰掓浼犮侱WR鏈韓灝辨彁渚涘Spring鐨勬敮鎸侊紝鍙互鐩存帴鎶奡pring涓殑Bean鏆撮湶緇欏鎴風嫻忚鍣ㄧ殑Javascript璋冪敤銆傚湪dwr.xml涓殑鍐欐硶鏄繖鏍風殑錛?br />< dwr > 聽聽聽聽< allow > 聽聽聽聽聽聽聽聽< create聽 creator ="spring" 聽javascript ="AjaxPortalService" > 聽聽聽聽聽聽聽聽聽聽聽聽< param聽 name ="beanName" 聽value ="AjaxPortalService" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="changeWondowState" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="changeWorkbenchState" /> 聽聽聽聽聽聽聽聽聽聽聽聽< include聽 method ="changeWindowOrder" /> 聽聽聽聽聽聽聽聽</ create > 聽聽聽聽</ allow > </ dwr >
榪欐牱鍐欏埌涔熸病浠涔堬紝鍙槸鎶婇」鐩垎妯″潡浠ュ悗錛岃櫧鏈夌殑閰嶇疆閮藉啓鍒頒竴涓猟wr.xml鏂囦歡閲岄潰緇存姢璧鋒潵姣旇緝楹葷儲錛屽挨鍏跺啀閬囧埌鐗堟湰綆$悊涓殑浠g爜鍚堝茍銆傛墍浠ユ浘緇忔垜鎵╁睍浜咲WR錛岃瀹冨彲浠ヤ粠澶氫釜鏂囦歡璇誨彇閰嶇疆淇℃伅銆傜劧鍚庢瘡涓ā鍧楄嚜宸變竴涓厤緗枃浠訛紝璺熺潃source涓璧瘋蛋銆傝繖鏍峰仛涔熸湁闂錛屽氨鏄幇鍦↗ava搴旂敤紼嬪簭鐨勯厤緗枃浠跺お澶氬暒錛丼pring鐨勯厤緗紝WebWork鐨勯厤緗紝Hibernate鐨勯厤緗紝DWR鐨勯厤緗紝鍐嶅姞涓婁竴浜涙潅涓冩潅鍏殑xml鍜宲roperties銆傜湅鐫榪欎簺閰嶇疆鏂囦歡綆鐩磋鐤帀浜嗐?br /> 姝e湪姝ゆ椂錛宻pring2妯┖鍑轟笘錛岀幇鍦ㄤ綘鍙互鎶婁竴浜涢厤緗枃浠跺悎騫跺埌涓璧蜂簡銆傛濂借秮姝ゆ満浼氫綋楠屼竴涓婼pring2鐨勮嚜瀹氫箟schema鐗規(guī)с?br /> 鐩爣錛?br />鎶奃WR鐨勯厤緗啓鎴愯繖鏍鳳細<? xml聽version="1.0"聽encoding="GBK" ?> < beans聽 xmlns ="http://www.springframework.org/schema/beans" 聽聽聽聽xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 聽聽聽聽xmlns:tx="http://www.springframework.org/schema/tx" 聽聽聽聽xmlns:aop="http://www.springframework.org/schema/aop" 聽聽聽聽xmlns:dwr="http://www.devside.org/schema/spring/dwr" 聽聽聽聽xsi:schemaLocation="http://www.springframework.org/schema/beans聽http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 聽聽聽聽聽聽聽聽聽聽聽http://www.springframework.org/schema/aop聽http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 聽聽聽聽聽聽聽聽聽聽聽http://www.springframework.org/schema/tx聽http://www.springframework.org/schema/tx/spring-tx-2.0.xsd 聽聽聽聽聽聽聽聽聽聽聽http://www.devside.org/schema/spring/dwr聽http://www.devside.org/schema/spring/dwr.xsd" 聽聽聽聽default-autowire="byName" > 聽聽聽聽 聽聽聽聽< bean聽 id ="departmentDao" 聽class ="cn.com.legendapl.hellostruts2.dao.DepartmentDao" /> 聽聽聽聽< bean聽 id ="employeeDao" 聽class ="cn.com.legendapl.hellostruts2.dao.EmployeeDao" /> 聽聽聽聽< bean聽 id ="companyService" 聽class ="cn.com.legendapl.hellostruts2.service.CompanyService" /> 聽聽聽聽 聽聽聽聽< aop:config > 聽聽聽聽聽聽聽聽< aop:pointcut聽 id ="companyServiceOperation" 聽expression ="execution(*聽cn.com.legendapl.hellostruts2.service.ICompanyService.*(..))" 聽 /> 聽聽聽聽聽聽聽聽< aop:advisor聽 advice-ref ="txAdvice" 聽pointcut-ref ="companyServiceOperation" 聽 /> 聽聽聽聽</ aop:config > 聽聽聽聽 聽聽聽聽 聽聽聽聽 < bean聽 id ="ajaxCompanyProxy" 聽class ="cn.com.legendapl.hellostruts2.ajax.AjaxCompanyProxy" /> 聽聽聽聽 聽聽聽聽< dwr:allow聽 id ="ajaxCompanyProxyAllow" > 聽聽聽聽聽聽聽聽< dwr:create聽 beanName ="ajaxCompanyProxy" 聽javascript ="CompanyProxy" > 聽聽聽聽聽聽聽聽聽聽聽聽< dwr:include聽 method ="findEmployeeById" /> 聽聽聽聽聽聽聽聽</ dwr:create > 聽聽聽聽聽聽聽聽< dwr:convert聽 converter ="bean" 聽match ="cn.com.legendapl.hellostruts2.entity.*" /> 聽聽聽聽</ dwr:allow > </ beans >
閲嶇偣鍦ㄨ繖閲岋細 聽聽聽聽< dwr:allow聽 id ="ajaxCompanyProxyAllow" > 聽聽聽聽聽聽聽聽< dwr:create聽 beanName ="ajaxCompanyProxy" 聽javascript ="CompanyProxy" > 聽聽聽聽聽聽聽聽聽聽聽聽< dwr:include聽 method ="findEmployeeById" /> 聽聽聽聽聽聽聽聽</ dwr:create > 聽聽聽聽聽聽聽聽< dwr:convert聽 converter ="bean" 聽match ="cn.com.legendapl.hellostruts2.entity.*" /> 聽聽聽聽</ dwr:allow >
濂戒簡鐜板湪鍔ㄦ墜寮濮嬪仛銆?br /> 鍘熺悊鍏跺疄寰堢畝鍗曪紝鐜板湪鐪嬪紶鍥俱傜敾鐨勪笉濂斤紝鏁鍘熻皡錛?br /> 浠庤繖鏍峰浘涓垜浠彲浠ョ湅鍑烘垜浠鍋氬涓嬪伐浣滐細 1銆佸仛涓涓猟wr.xsd錛屽畾涔塻pring閰嶇疆鏂囦歡涓殑dwr榪欓儴鍒嗛厤緗殑schema銆?br />聽聽聽瑕佸仛榪欎釜闇瑕佹湁涓瀹歺ml鍜寈sd鐨勭煡璇嗭紝鎴戜篃鏄幇瀛︾幇鐢ㄥ暒錛?br />
<? xml聽version="1.0"聽encoding="UTF-8" ?> < xsd:schema聽 xmlns ="http://www.devside.org/schema/spring/dwr" 聽聽聽聽xmlns:xsd="http://www.w3.org/2001/XMLSchema" 聽聽聽聽xmlns:beans="http://www.springframework.org/schema/beans" 聽聽聽聽targetNamespace="http://www.devside.org/schema/spring/dwr" 聽 聽聽聽聽elementFormDefault ="qualified" 聽聽聽聽 聽聽聽聽attributeFormDefault ="unqualified" > 聽聽聽聽< xsd:import聽 namespace ="http://www.springframework.org/schema/beans" 聽schemaLocation ="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" /> 聽聽聽聽 聽聽聽聽< xsd:element聽 name ="allow" > 聽聽聽聽聽聽聽聽< xsd:complexType > 聽聽聽聽聽聽聽聽聽聽聽聽< xsd:complexContent > 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽< xsd:extension聽 base ="beans:identifiedType" > 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽< xsd:sequence > 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽< xsd:element聽 name ="create" 聽type ="createType" 聽minOccurs ="0" 聽maxOccurs ="unbounded" /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 < xsd:element聽 name ="convert" 聽type ="convertType" 聽minOccurs ="0" 聽maxOccurs ="unbounded" /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </ xsd:sequence > 聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </ xsd:extension > 聽聽聽聽聽聽聽聽聽聽聽聽</ xsd:complexContent > 聽聽聽聽聽聽聽聽</ xsd:complexType > 聽聽聽聽</ xsd:element > 聽聽聽聽 聽聽聽聽 < xsd:complexType聽 name ="createType" > 聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽 < xsd:sequence > 聽聽聽聽聽聽聽聽聽聽聽聽< xsd:element聽 name ="auth" 聽type ="authType" 聽minOccurs ="0" 聽maxOccurs ="unbounded" /> 聽聽聽聽聽聽聽聽聽聽聽聽< xsd:element聽 name ="include" 聽type ="includeType" 聽minOccurs ="0" 聽maxOccurs ="unbounded" /> 聽聽聽聽聽聽聽聽聽聽聽聽< xsd:element聽 name ="exclude" 聽type ="excludeType" 聽minOccurs ="0" 聽maxOccurs ="unbounded" /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽 </ xsd:sequence > 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="beanName" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="javascript" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽 </ xsd:complexType > 聽聽聽 聽聽聽聽 聽聽聽聽 < xsd:complexType聽 name ="convertType" > 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="converter" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="match" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽</ xsd:complexType > 聽聽 聽聽聽聽 聽聽聽聽 < xsd:complexType聽 name ="authType" > 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="method" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="role" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽</ xsd:complexType > 聽聽聽聽< xsd:complexType聽 name ="includeType" > 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="method" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽</ xsd:complexType > 聽聽聽聽< xsd:complexType聽 name ="excludeType" > 聽聽聽聽聽聽聽聽< xsd:attribute聽 name ="method" 聽type ="xsd:string" 聽use ="required" /> 聽聽聽聽</ xsd:complexType > </ xsd:schema > 2銆佹垜浠鍋氫竴涓狣WRNamespaceHandler鏉ュ鐞咲WR鐨勯厤緗俊鎭紝鍏跺疄閲岄潰灝卞仛涓浠朵簨鎶夾llowBeanDefinitionParser娉ㄥ唽緇檃llow鑺傜偣銆傚洜涓烘垜浠琩wr鐨勯厤緗儴鍒嗘牴鑺傜偣灝變竴涓爣絳綼llow錛屾墍浠ユ垜浠氨鍋氫竴涓敤浜庤В鏋恆llow鏍囩鐨凙llowBeanDefinitionParser瑙f瀽鍣ㄥ氨琛屻傚鏋滄垜浠殑鏍硅妭鐐硅繕鏈夊叾浠栫殑鏍囩錛屽悓鏍蜂篃瑕佸仛鐩稿簲鐨勮В鏋愬櫒銆?br />
public 聽 class 聽DWRNamespaceHandler聽 extends 聽NamespaceHandlerSupport聽{ 聽聽聽聽 public 聽 void 聽init()聽{ 聽聽聽聽聽聽聽聽 // 鎶夾llowBeanDefinitionParser娉ㄥ唽鍒癮llow鑺傜偣 聽聽聽聽聽聽聽聽registerBeanDefinitionParser( " allow " ,聽 new 聽AllowBeanDefinitionParser()); 聽聽聽聽} }
鍏跺疄闅劇偣鏄仛AllowBeanDefinitionParser錛岃繖閲屼綘闇瑕佷竴浜汥OM妯″瀷鐨勭煡璇嗭紝鏉ユ搷浣滈厤緗妭鐐圭殑鍐呭銆傜劧鍚庢牴鎹唴瀹硅繘琛屽鐞嗐傚湪榪欓噷鎴戜滑錛岄渶瑕佸仛涓変歡浜嬶細 聽聽 [1]聽 鎶婇厤緗妭鐐圭殑鍐呭杞崲鎴愬璞℃ā鍨嬶紝鍗矨llowBean錛堝叾瀹炲氨鏄竴浜汸OJO緗簡錛夈?br />聽聽 [2]聽 鎶婅繖涓狝llowBean娉ㄥ唽緇橲pring鐨凜ontext錛岃繖涓姝ユ槸鍙夌殑銆傚洜涓烘垜浠富瑕佹槸鎶婅繖涓狟ean緇橠WR錛屽綋鐒墮『閬撶粰Spring涓浠戒篃娌′粈涔堥棶棰樸?br />聽聽 [3] 鎶婅繖涓狝llowBean娉ㄥ唽鍒癆llowBeanHolder銆?br /> 3銆丄llowBeanHolder銆?br />聽聽聽鍏跺疄榪欏氨鏄釜綆鍗曠殑singleton綾伙紝鏁翠釜榪愯鏈熷彧鏈変竴涓疄渚嬨傚畠?yōu)鍍忎竴涓鍣紝AllowBeanDefinitionParser寰閲屾斁錛孌WR鐨凜onfiguration鍐嶄粠榪欓噷鍙栥?br /> 4銆佹墿灞旸WR鐨凞efaultConfiguration錛屾垜浠仛涓涓猄pringConfiguration銆侱WR鐨凞efaultConfiguration鏄礋璐h鍙栭厤緗俊鎭殑銆傛垜浠湪鍏朵腑鍔犲叆浠嶢llowBeanHolder璇誨彇閰嶇疆淇℃伅鐨勫姛鑳藉嵆鍙?br /> 5銆佹墿灞旸WR鐨凞WRServlet錛屾垜浠仛涓涓猄pringDWRServlet錛屽師鏉ョ殑DWRServlet鍔犺澆鐨勬槸DefaultConfiguration錛屾垜浠殑Serlvet鍔犺澆鎴戜滑鑷繁鐨凷pringConfiguration鍗沖彲銆?br /> 6銆佷竾浜嬩勘澶囷紝鍙瑺涓滈鍟︺傚氨鏄Spring鐭ラ亾鎴戜滑騫蹭簡榪欎簺錛?br />聽聽聽鍦∕ETA-INF鐩綍涓嬶紙濡傛灉娌℃湁鍦╯rc鐩綍涓嬪垱寤轟竴涓級鍔犲叆spring.handlers鍜宻pring.schemas涓や釜鏂囦歡銆?br />聽聽聽spring.handlers涓殑鍐呭錛?br />聽聽聽http\: // www.devside.org/schema/spring/dwr=org.devside.core.support.dwr.DWRNamespaceHandler 聽聽聽spring.schemas涓殑鍐呭錛?br />聽聽 http\://www.devside.org/schema/spring/dwr.xsd=org/devside/core/support/dwr/dwr.xsd 聽聽聽 聽聽 娉ㄦ剰涓嶈鍐欓敊瀛楀摝錛屾垜涓寮濮嬪氨鍐欓敊涓涓瓧姣嶏紝緇撴灉鎬庝箞璋冭瘯閮戒笉鑳芥垚鍔燂紝榪樹互涓篠pring2鏈夐棶棰樺憿銆?br /> ok浜嗭紝涓嬮潰鎴戜滑灝卞彲浠ュ啓涓涓猻pring鐨勯厤緗枃浠舵潵璇曡瘯鍠姐?br /> 涓嬮潰鎻愪緵涓や釜婧愮爜鍖咃紝涓涓槸spring-dwr鐨勬簮鐮侊紝涓涓槸hellosturts2錛屼竴涓猻truts2+spring2+hibernate3.2鐨勪緥瀛愶紝鍏朵腑鏈夌敤鍒皊pring-dwr鐨勪緥瀛愩?br /> 涓轟簡鍑忓皬瀹歸噺錛屾垜鎶妀ar閮藉幓鎺変簡錛宭ib鐩綍涓嬫彁渚涗簡涓涓垪琛紝浣犲彲浠ヨ嚜宸卞幓鎵劇浉鍏崇殑jar鍖呫?br />http://www.tkk7.com/Files/mstar/HelloStruts2.zip http://www.tkk7.com/Files/mstar/spring-dwr.zip ]]> dwr綆浠?-涓涓緥瀛?緇簩) http://www.tkk7.com/mstar/archive/2005/08/09/9674.html榛戠伒 榛戠伒 Tue, 09 Aug 2005 09:56:00 GMT http://www.tkk7.com/mstar/archive/2005/08/09/9674.html http://www.tkk7.com/mstar/comments/9674.html http://www.tkk7.com/mstar/archive/2005/08/09/9674.html#Feedback 5 http://www.tkk7.com/mstar/comments/commentRss/9674.html http://www.tkk7.com/mstar/services/trackbacks/9674.html 闃呰鍏ㄦ枃 ]]> dwr綆浠?-涓涓緥瀛?緇? http://www.tkk7.com/mstar/archive/2005/08/09/9673.html榛戠伒 榛戠伒 Tue, 09 Aug 2005 09:34:00 GMT http://www.tkk7.com/mstar/archive/2005/08/09/9673.html http://www.tkk7.com/mstar/comments/9673.html http://www.tkk7.com/mstar/archive/2005/08/09/9673.html#Feedback 5 http://www.tkk7.com/mstar/comments/commentRss/9673.html http://www.tkk7.com/mstar/services/trackbacks/9673.html 闃呰鍏ㄦ枃 ]]> dwr綆浠?-涓涓緥瀛?/title> http://www.tkk7.com/mstar/archive/2005/08/08/9566.html榛戠伒 榛戠伒 Mon, 08 Aug 2005 05:58:00 GMT http://www.tkk7.com/mstar/archive/2005/08/08/9566.html http://www.tkk7.com/mstar/comments/9566.html http://www.tkk7.com/mstar/archive/2005/08/08/9566.html#Feedback 4 http://www.tkk7.com/mstar/comments/commentRss/9566.html http://www.tkk7.com/mstar/services/trackbacks/9566.html 闃呰鍏ㄦ枃 ]]> dwr綆浠?/title> http://www.tkk7.com/mstar/archive/2005/08/08/9561.html榛戠伒 榛戠伒 Mon, 08 Aug 2005 05:26:00 GMT http://www.tkk7.com/mstar/archive/2005/08/08/9561.html http://www.tkk7.com/mstar/comments/9561.html http://www.tkk7.com/mstar/archive/2005/08/08/9561.html#Feedback 11 http://www.tkk7.com/mstar/comments/commentRss/9561.html http://www.tkk7.com/mstar/services/trackbacks/9561.html 鏈榪?/SPAN>Ajax 姣旇緝鐏紝鍏ㄤ笘鐣岄兘鍦ㄨ璁恒備簬鏄垜涔熸幒鍜屾幒鍜岋紝鐩存帴鐢?/SPAN>XMLHttpRequest 錛熺幇鍦ㄧ殑鎴戣繕娌℃湁閭d釜姘村鉤銆傜敤 Echo2 鎴栬?/SPAN>backbase 錛屽張鎰熻閭d簺綰?/SPAN>Ajax 鐨?/SPAN>framework 澶噸閲忕駭浜嗐傛垜瑕佺殑鍙槸涓浜涚畝鍗曠殑搴旂敤鑰屽凡銆備簬鏄瑙呯殑閲嶇偣鏀懼湪浜嗕竴浜涘 xmlhttpRequest 榪涜杞婚噺綰у寘瑁呯殑浠g爜搴撲笂浜嗐備簬鏄垜鎵懼埌浜?/SPAN>DWR 錛?/SPAN>Direct Web Remoting 錛夈?/SPAN>DWR 鐨勫彛鍙鋒槸 AJAX and XMLHttpRequest made easy 錛屽茍涓斿畠涔熷熀鏈笂鍋氬埌浜嗚繖涓鐐廣傚畠鎻愪緵浜嗕竴涓弸濂界殑妗嗘灦鍜屼竴浜涘緢鏈夌敤鐨?/SPAN>JavaScript 搴擄紝鍙互璁╂垜鐢ㄨ搗 Ajax 鏇村鏄撲簺銆傝緇嗙殑淇℃伅鍙互鍒頒粬浠殑緗戠珯 http://www.getahead.ltd.uk/dwr/ 銆傞『渚垮湪浠嬬粛涓涓綉绔欏惂錛?/SPAN>http://www.ajaxmatters.com 榪欓噷涔熸湁寰堝鍏充簬 Ajax 鐨勮祫婧愩?/SPAN>
涓嬮潰鏉ョ畝鍗曚粙緇嶄竴涓?/SPAN>DWR 銆?/SPAN>
鍏跺疄鍦ㄦ病鏈?/SPAN>XMLHttpRequest 鍓?/SPAN>DWR 灝辨湁浜嗭紝閭f椂瀹冪敤鐨勬槸 IFrame 錛屾晥鏋滃緢宸紝鎵浠ユ垜鐪嬬湅浜嗗氨娌℃湁鍐?/SPAN>diao 瀹冦傜幇鍦ㄧ殑 DWR 涓昏鐢?/SPAN>XMLHttpRequest 錛屽綋鐒朵篃鍙互閫夎呯敤 IFrame 錛屼絾鏄笉鎺ㄨ崘銆?/SPAN>
DWR 鏄釜 open source software 錛屾巿鏉冩柟寮忔槸 ASL version 2.0 鐨勩傜幇鍦ㄧ綉绔欎笂 examples and tutorials 鍋氱殑涔熶笉閿欍傛垜灝辨牴鎹繖浜涗笢瑗胯嚜宸變篃鍋氫簡涓涓簲鐢紝鍦ㄦ湰鏂囩殑鍚庨潰鎴戜細璇︾粏璁插埌銆?/SPAN>
鐜板湪 DWR 鐨勬渶鏂扮増鏈槸 1.0RC1 銆傚湪鎴戠殑璇曠敤鐜鐩歌繕綆楁瘮杈冪ǔ瀹氾紝娌℃湁鍑虹幇浠涔堥棶棰樸?/SPAN>
DWR 鏈韓浠ヤ竴涓?/SPAN>dwr.jar 鐨?/SPAN>jar 鍖呭瓨鍦紝瀹冪殑鍏ュ彛鏃朵竴涓?/SPAN>Servlet 錛?/SPAN>uk.ltd.getahead.dwr.DWRServlet 錛夋墍浠ヨ鍦?/SPAN>web.xml 閲岄厤緗竴涓嬪氨鍙互浜嗐傚叿浣撻厤緗湅榪欓噷 http://www.getahead.ltd.uk/dwr/intro.html 銆傛瘮杈冪畝鍗曘?/SPAN>dwr 涓烘垜浠彁渚涗簡涓涓?/SPAN>framework 甯垜浠緢瀹規(guī)槗鐨勫疄鐜?/SPAN>JavaScript 鍜?/SPAN>java 涔嬮棿鐨勯氫俊銆?/SPAN>
鎴戣繕娌℃湁鐪嬭繃 dwr 鐨勬簮鐮侊紝鍏蜂綋浠栨槸鎬庝箞瀹炵幇鐨勬垜涔熶笉澶竻妤氥備絾澶ц嚧涓婅偗瀹氭槸閫氳繃 xmlhttprequest 鏉ヨ皟鐢ㄥ畠鐨?/SPAN>servlet 鐒跺悗鎶婃暟鎹敤 xml 鎵撳寘瑙e寘浜嗐傚叾瀹炴垜瑙夊緱榪欓儴鍒嗗埌涓嶆槸 dwr 緇欐垜甯︽潵鐨勬渶鏂逛究鐨勫湴鏂廣傛渶鏂逛究鐨勫湴鏂瑰簲璇ユ槸浠栫殑閭d簺 js 鐨勫簱銆?/SPAN>
鎵浠ヤ笅闈㈡垜瑕佷粙緇嶄竴涓嬪畠鐨勪袱涓噸瑕?/SPAN>js 瀵硅薄銆?/SPAN>
DWREngine 錛?/SPAN>engine.js 涓級錛?/SPAN>DWRUtil (util.js 涓?/SPAN>) 銆?/SPAN>
DWREngine 涓殑鏂規(guī)硶鏄熀鏈笂鏄叧浜?/SPAN>XMLHttpRequest 鐨勩?/SPAN>
涓嬮潰涓粙緇嶄竴浜?/SPAN>
DWREngine.setErrorHandler(handler)
榛樿鐨勯敊璇鐞嗘椂寮瑰嚭涓涓璇濇錛屼綘鍙互閫氳繃榪欎釜鏂規(guī)硶鏀瑰彉鎴愪綘闇瑕佺殑琛ㄧ幇褰㈠紡銆?/SPAN>
DWREngine.setWarningHandler(handler)
鏀瑰彉榛樿鐨勮鍛婂鐞嗗艦寮?/FONT>
DWREngine.beginBatch()
Some Remote Function鈥?/SPAN>
DWREngine.endBatch()
褰撲綘鏈夊嚑涓繙紼嬭皟鐢ㄨ涓璧瘋繘琛屾椂錛屽氨瑕佺敤鍒拌繖涓や釜鏂規(guī)硶銆?/SPAN>
濡傛灉涓嶇敤榪欎袱涓柟娉曪紝浣犲氨浼氬彂鐜頒綘鐨勮繙紼嬭皟鐢ㄥ茍涓嶄互浣犳兂璞$殑欏哄簭榪涜銆?/SPAN>
DWREngine 涓繕鏈変竴浜涘叾瀹冪殑鏂規(guī)硶錛屾垜娌℃湁鐢ㄨ繃銆備綘鍙互閫氳繃 dwr 鐨?/SPAN>js-doc 鏉ョ湅銆傚鏋滈氳繃鏂囨。鐪嬩笉鎳傚畠鏄共浠涔堢敤鐨勶紝灝辯湅 js 婧愮爜錛屾簮鐮佺殑娉ㄩ噴涔熸槸姣旇緝璇︾粏鐨勩?/SPAN>
DWRUtil 涓篃鏈変竴浜涘緢鏈夌敤鐨勬柟娉曘傝繖浜涙柟娉曚竴鑸槸緙栧啓 js 鐨勮緟鍔╂柟娉曘?/SPAN>
姣斿 setValue 鍜?/SPAN>getValue 銆傚ぇ澶氭暟 html 鏍囩鏈?/SPAN>value 灞炴э紝榪欐椂浣犺鑾峰彇鎴栬呰緗畠鐨勫兼椂灝辯敤 $(鈥渟omeid鈥?.value 灝卞彲浠ヤ簡銆備絾鏄湁浜?/SPAN>html 鏍囪鏄病鏈?/SPAN>value 灞炴х殑錛屽畠鐨勫兼椂鍦ㄦ爣絳劇殑涓棿錛屽 <span id=鈥漵pan1鈥?/st1:chmetcnv>>some value</span> 榪欐椂浣犺鍙栨垨璁懼畠鐨勫肩殑鏃跺欏氨鐢?/SPAN>DWRUtil.setValue($(鈥渟pan1鈥? 錛?/SPAN>someValue) 銆傝繖鏍蜂綘灝卞彲浠ュ湪瀹㈡埛绔姩鎬佺殑琛ㄧ幇涓浜涙暟鎹簡銆?/SPAN>
榪樻湁寰堝寰堝ソ鐢ㄧ殑鏂規(guī)硶錛?/SPAN>dwr 鐨勪緥瀛愪腑鏈変竴浜涜鏄庯紝婧愮爜涓殑娉ㄩ噴涔熸瘮杈冭緇嗐?/SPAN>
Dwr 灝變粙緇嶅埌榪欓噷鍚с備笅涓綃囷紝鎴戝仛浜嗕釜 table 鐨勪緥瀛愩?BR>
]]>
主站蜘蛛池模板:
一区免费在线观看 |
亚洲欧美日韩久久精品 |
精品乱子伦一区二区三区高清免费播放 |
日本精品人妻无码免费大全 |
亚洲国产成+人+综合 |
91免费在线播放 |
亚洲乱码卡一卡二卡三 |
国产成人免费网站 |
亚洲乱码在线播放 |
在线观看免费成人 |
国产精品亚洲五月天高清 |
免费很黄很色裸乳在线观看 |
免费国产高清毛不卡片基地 |
亚洲无码视频在线 |
国产在线观看无码免费视频 |
亚洲成AV人片在线观看 |
热re99久久6国产精品免费 |
亚洲精品中文字幕乱码 |
最近最新MV在线观看免费高清 |
久久亚洲精品国产亚洲老地址 |
日韩免费高清视频 |
一级**爱片免费视频 |
亚洲国产a∨无码中文777 |
亚洲高清视频免费 |
亚洲精品国产高清在线观看 |
亚洲第一永久AV网站久久精品男人的天堂AV |
黄页网站在线观看免费 |
亚洲乱码无人区卡1卡2卡3 |
国产精品视_精品国产免费
|
亚洲国产美女视频 |
处破痛哭A√18成年片免费 |
黄网站在线播放视频免费观看 |
亚洲AV永久纯肉无码精品动漫 |
免费v片视频在线观看视频 |
亚洲高清视频免费 |
最好免费观看高清在线 |
一级午夜a毛片免费视频 |
亚洲а∨精品天堂在线 |
亚洲人成电影网站 |
亚洲视屏在线观看 |
亚洲2022国产成人精品无码区 |