轉(zhuǎn)自:http://blog.csdn.net/3cts/archive/2005/12/30/566079.aspx
引言 大家都知道可以通過post或者get獲得form表單的數(shù)據(jù),那么我們?nèi)绾螌崿F(xiàn)不刷新的提交直接獲得頁面上的數(shù)據(jù)呢?這就要借助xmlhttp協(xié)議了。xmlhttp是xmldom技術(shù)的一部分。 下面的代碼就是一個很簡單的例子,我們利用xmlhttp技術(shù)實現(xiàn)簡單的用戶登陸。 開始 1.簡單的登錄頁面 login.jsp function toServer(){ var xml = "<root>"+ "<name>"+document.all('name').value+"</name>"+ "<pwd>"+document.all('pwd').value+"</pwd>"+ "</root>"; var XMLSender = new ActiveXObject("Microsoft.XMLHTTP" ); XMLSender.Open("POST",'do_login.jsp',false); XMLSender.send((xml)); alert(XMLSender.responseText); //可處理后臺返回的結(jié)果 } 姓名:<input type="text" id="name" /><br> 密碼:<input type="text" id="pwd" /><br> <input type="button" value="登錄" onclick="toServer()"> 2.后臺的登錄處理頁面 do_login.jsp <% //讀取XMLHTTP流 java.io.BufferedReader br = request.getReader(); String str = ""; while (str != null) { str = br.readLine(); process (str); //可通過任何語言實現(xiàn)解析XML,進(jìn)行業(yè)務(wù)處理 } //返回信息 javax.servlet.ServletOutputStream sos = response.getOutputStream(); sos.print("login success" ); sos.close(); %> 與傳統(tǒng)的“提交-回發(fā)-重繪”式的web系統(tǒng)基本運行結(jié)構(gòu)不同,我們可以通過通過XMLHTTP實現(xiàn)無刷新的客戶端直接與服務(wù)器交互,極大的提高用戶的感受度。 查考資料 XMLHTTP方法: Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword bstrMethod:數(shù)據(jù)傳送方式,即GET或POST。 bstrUrl:服務(wù)網(wǎng)頁的URL。 varAsync:是否同步執(zhí)行。缺省為True,即同步執(zhí)行,但只能在DOM中實施同步執(zhí)行。 應(yīng)用中一般將其置為False,即異步執(zhí)行。 bstrUser:用戶名,可省略。 bstrPassword:用戶口令,可省略。 Send varBody varBody:指令集。可以是XML格式數(shù)據(jù),也可以是字符串,流,或者一個無符號整數(shù)數(shù)組。也可以省略,讓指令通過Open方法的URL參數(shù)代入。 setRequestHeader bstrHeader, bstrValue bstrHeader:HTTP 頭(header) bstrValue:HTTP 頭(header)的值 如果Open方法定義為POST,可以定義表單方式上傳: xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" XMLHTTP屬性: onreadystatechange:在同步執(zhí)行方式下獲得返回結(jié)果的事件句柄。只能在DOM中調(diào)用。 responseBody:結(jié)果返回為無符號整數(shù)數(shù)組。 responseStream:結(jié)果返回為IStream流。 responseText :結(jié)果返回為字符串。 responseXML:結(jié)果返回為XML格式數(shù)據(jù)。 |
版權(quán)所有 羅明