最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AJAX和JSP混合使用方法實(shí)例

 更新時(shí)間:2016年02月16日 11:45:58   作者:茶飲月  
AJAX 是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。下面通過本文給大家介紹AJAX和JSP混合使用方法實(shí)例,感興趣的朋友一起學(xué)習(xí)吧

首先要知道AJAX 是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。

什么是 AJAX ?

AJAX = 異步 JavaScript 和 XML。

AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。

通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。

傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁面。

AJAX工作原理

這里寫圖片描述

AJAX請(qǐng)求

ajax請(qǐng)求是依靠XMLHttpRequest對(duì)象,因此在請(qǐng)求前先要?jiǎng)?chuàng)建其對(duì)象

var xmlhttp;
//兼容性寫法創(chuàng)建請(qǐng)求實(shí)例,IE5 6支持else里面的方法
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

接著向服務(wù)器發(fā)送請(qǐng)求

open函數(shù)有三個(gè)參數(shù),請(qǐng)求方式,請(qǐng)求地址,請(qǐng)求是異步還是同步
send(String)函數(shù)有一個(gè)參數(shù),只有當(dāng)請(qǐng)求方式為post的時(shí)候,String參數(shù)才需要帶上

那么GET和POST的區(qū)別呢?

與 POST 相比,GET 更簡(jiǎn)單也更快,并且在大部分情況下都能用。

然而,在以下情況中,請(qǐng)使用 POST 請(qǐng)求:

無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)
向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)
發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠

//設(shè)置傳送方式,地址,以及同步還是異步
xmlhttp.open("GET","Test.jsp?value="+escape(value),true);
xmlhttp.onreadystatechange = callback;//狀態(tài)改變的時(shí)候執(zhí)行這個(gè)函數(shù),用來判斷是否請(qǐng)求完畢
xmlhttp.send();//請(qǐng)求服務(wù)器,如果使用post方式,則send里面要帶上傳遞的參數(shù)
//post方式
/**
xmlhttp.open("POST","Test.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("value="+value);
*/

然后服務(wù)器端處理并返回,這個(gè)放在實(shí)例里面有具體代碼

在回調(diào)函數(shù)callback中設(shè)置對(duì)返回響應(yīng)

onreadystatechange 存儲(chǔ)函數(shù)(或函數(shù)名),每當(dāng) readyState 屬性改變時(shí),就會(huì)調(diào)用該函數(shù)。
readyState 存有 XMLHttpRequest 的狀態(tài)。從 0 到 4 發(fā)生變化。

0: 請(qǐng)求未初始化
1: 服務(wù)器連接已建立
2: 請(qǐng)求已接收
3: 請(qǐng)求處理中
4: 請(qǐng)求已完成,且響應(yīng)已就緒

status 200: “OK”

404: 未找到頁面

相應(yīng)服務(wù)器的類型

responseText 獲得字符串形式的響應(yīng)數(shù)據(jù)。

responseXML 獲得 XML 形式的響應(yīng)數(shù)據(jù)。 這個(gè)一般當(dāng)open里面的url為xml文件的時(shí)候用

function callback(){
//請(qǐng)求完成表示
if(xmlhttp.readyState ==4 && xmlhttp.status==200){
//設(shè)置相應(yīng)操作
}
}
}

總體來說就這幾個(gè)步驟,下面是詳細(xì)代碼

實(shí)例

首先創(chuàng)建一個(gè)文本框,用于測(cè)試用戶名,并且添加監(jiān)聽事件onblur,意思是當(dāng)失去焦點(diǎn)則執(zhí)行,并在其后面創(chuàng)建個(gè)span空標(biāo)簽,用來動(dòng)態(tài)顯示信息,表示名稱是否被占用

<form method="post" action="AJAX.jsp">
<table>
<tr>
<td><input type="text" id="userid" onblur="checkuser()" ><span style="color: red" id="spanid"></span></td>
</tr>
</table>
</form>

接下來是JS代碼,使用AJAX把輸入的內(nèi)容發(fā)送到服務(wù)器,服務(wù)器來檢驗(yàn)

var xmlhttp;
function checkuser(){
var value = document.getElementById("userid").value;
//兼容性寫法創(chuàng)建請(qǐng)求實(shí)例,IE5 6支持else里面的方法
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//設(shè)置傳送方式,地址,以及同步還是異步
xmlhttp.open("GET","Test.jsp?value="+escape(value),true);
xmlhttp.onreadystatechange = callback;//狀態(tài)改變的時(shí)候執(zhí)行這個(gè)函數(shù),用來判斷是否請(qǐng)求完畢
xmlhttp.send();//請(qǐng)求服務(wù)器
}

然后服務(wù)器端獲得數(shù)據(jù)后寫回

<%
response.setHeader("Cache-Control","no-store");//HTTP1.1
response.setHeader("Pragma","no-cache");//HTTP1.0
response.setDateHeader("Expires",0);//禁止在服務(wù)器中緩存
String value = request.getParameter("value");//獲取傳送過來的參數(shù)
response.getWriter().write(value);//模擬數(shù)據(jù)寫回
%>

客戶端再回調(diào)函數(shù)中處理服務(wù)器寫回的數(shù)據(jù)

/**
* 回調(diào)函數(shù)
*/
function callback(){
//請(qǐng)求完成表示
if(xmlhttp.readyState ==4 && xmlhttp.status==200){
alert(xmlhttp.responseText);//相應(yīng)返回的text
// alert(xmlhttp.responseXML);//相應(yīng)返回的xml
if (xmlhttp.responseText){//這里直接判斷不為空,應(yīng)該根據(jù)數(shù)據(jù)庫返回值來進(jìn)行不同的顯示
var spanid = document.getElementById("spanid");
spanid.innerHTML = "注冊(cè)成功";
}
}
}

效果就是當(dāng)輸入框失去焦點(diǎn)就立即判斷,當(dāng)然實(shí)際判斷是要連接數(shù)據(jù)庫的,為了簡(jiǎn)單就直接打印出來了

這里寫圖片描述

以上內(nèi)容是針對(duì)AJAX和JSP混合使用方法實(shí)例,希望對(duì)大家有所幫助!

相關(guān)文章

  • AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果

    AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • AJAX javascript的跨域訪問執(zhí)行

    AJAX javascript的跨域訪問執(zhí)行

    在網(wǎng)站調(diào)用加載評(píng)論等信息的時(shí)候遇到了不同域名間javascript不能執(zhí)行的問題,一直都在加載中顯示不出來,而換個(gè)網(wǎng)址訪問的話就能正確顯示,一直沒去注意瀏覽器提示的錯(cuò)誤信息:
    2008-04-04
  • Ajax基礎(chǔ)詳解教程(一)

    Ajax基礎(chǔ)詳解教程(一)

    ajax技術(shù)在前端應(yīng)用開發(fā)中經(jīng)常會(huì)用到,是必須要掌握的知識(shí)。下面腳本之家小編給大家?guī)砹薃jax基礎(chǔ)詳解教程(一),感興趣的朋友跟著一起學(xué)習(xí)吧
    2016-06-06
  • AJAX POST數(shù)據(jù)中有特殊符號(hào)(轉(zhuǎn)義字符)導(dǎo)致數(shù)據(jù)丟失的解決方法

    AJAX POST數(shù)據(jù)中有特殊符號(hào)(轉(zhuǎn)義字符)導(dǎo)致數(shù)據(jù)丟失的解決方法

    這篇文章主要介紹了Ajax發(fā)送轉(zhuǎn)義字符 、>、<、"接收數(shù)據(jù)不全問題,需要的朋友可以參考下
    2023-06-06
  • Ajax中瀏覽器的緩存問題解決方法

    Ajax中瀏覽器的緩存問題解決方法

    我們?cè)谧鲰?xiàng)目中,一般提交請(qǐng)求都會(huì)通過ajax來提交,但是測(cè)試的時(shí)候發(fā)現(xiàn),每次提交后得到的數(shù)據(jù)都是一樣的,調(diào)試可以排除后臺(tái)代碼的問題,所以問題肯定是出在前臺(tái)
    2013-06-06
  • AJAX實(shí)現(xiàn)文件上傳功能報(bào)錯(cuò)Current request is not a multipart request詳解

    AJAX實(shí)現(xiàn)文件上傳功能報(bào)錯(cuò)Current request is not a&n

    這篇文章主要介紹了AJAX文件上傳功能實(shí)現(xiàn)中出現(xiàn)報(bào)錯(cuò)Current request is not a multipart request的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 無框架 Ajax分頁(原創(chuàng))

    無框架 Ajax分頁(原創(chuàng))

    最近想做一個(gè)Ajax的功能,網(wǎng)上一搜幾乎全是基于某某框架的Ajax分頁,要么需給頁面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用類似于jquery的框架。
    2009-08-08
  • ajax編寫簡(jiǎn)單的登錄頁面

    ajax編寫簡(jiǎn)單的登錄頁面

    這篇文章主要為大家詳細(xì)介紹了ajax編寫簡(jiǎn)單登錄頁面的具體代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 利用AJAX實(shí)現(xiàn)鼠標(biāo)懸浮獲取值的代碼

    利用AJAX實(shí)現(xiàn)鼠標(biāo)懸浮獲取值的代碼

    ajax實(shí)現(xiàn)將鼠標(biāo)放到圖標(biāo)上,下方會(huì)顯示和該圖有關(guān)的信息
    2009-12-12
  • 前后端ajax和json數(shù)據(jù)交換方式

    前后端ajax和json數(shù)據(jù)交換方式

    這篇文章主要介紹了前后端ajax和json數(shù)據(jù)交換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論

泗阳县| 建德市| 平南县| 惠州市| 东源县| 荥经县| 临洮县| 如东县| 五河县| 襄城县| 大新县| 亳州市| 兴宁市| 博爱县| 团风县| 柳林县| 汝南县| 万山特区| 米泉市| 宜黄县| 卫辉市| 偃师市| 房产| 寻甸| 错那县| 平谷区| 介休市| 神农架林区| 陆河县| 中超| 会宁县| 东安县| 乐东| 安阳市| 类乌齐县| 太保市| 顺平县| 平山县| 河曲县| 高密市| 定日县|