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

Java?Web中Ajax技術(shù)使用方法介紹

 更新時間:2022年10月28日 11:33:34   作者:showswoller  
ajax技術(shù)是使頁面能局部刷新的一種技術(shù),下面這篇文章主要給大家介紹了關(guān)于JavaWeb之Ajax的基本使用與實戰(zhàn)案例的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

Ajax是一個客戶端技術(shù) 是更加先進(jìn) 標(biāo)準(zhǔn)化和高效的Web開發(fā)技術(shù)

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、Ajax與傳統(tǒng)的Web應(yīng)用模式的對比

在傳統(tǒng)的Web應(yīng)用中 頁面中用于的每一次操作都將觸發(fā)一次返回Web服務(wù)器的HTTP請求 服務(wù)器將進(jìn)行相應(yīng)的處理然后返回一個HTML頁面給客戶端

而在Ajax應(yīng)用中 頁面中用戶的操作將通過Ajax引擎與服務(wù)器端進(jìn)行通信 然后將返回結(jié)果提交給客戶端頁面的Ajax引擎 再由Ajax引擎來決定將這些數(shù)據(jù)插入到頁面的指定位置

所以在Ajax開發(fā)模式中可以通過JavaScript實現(xiàn)在不刷新整個頁面的情況下 對部分?jǐn)?shù)據(jù)進(jìn)行更新 從而降低了網(wǎng)絡(luò)流浪 給用戶帶來更好的體驗

二、Ajax使用的技術(shù)

Ajax是XMLHttpRequest對象和JavaScript XML CSS DOM等多種技術(shù)的組合 其中只有XMLHttpRequest對象是新技術(shù) 其他的均為已有技術(shù)

1:XMLHttpRequest對象

是核心技術(shù) 它是一個具有應(yīng)用程序接口的JavaScript對象 能夠使用超文本傳輸協(xié)議連接一個服務(wù)器 是微軟公司為了滿足開發(fā)者的需要推出的

2:XML

它是可擴展的標(biāo)記語言的縮寫,它提供了用于描述結(jié)構(gòu)化數(shù)據(jù)的格式 適用于不同應(yīng)用程序間的數(shù)據(jù)交換 而且這種交換不以預(yù)先定義的一組數(shù)據(jù)結(jié)構(gòu)為前提 增強了可擴展性 XMLHttpRequest對象與服務(wù)器交換的數(shù)據(jù)通常采用XML格式

在XML文檔中 元素以樹形分層結(jié)構(gòu)排列 其實<resume>為根元素 其他的都是該元素的子元素

3:JavaScript

它是一種在Web頁面中添加動態(tài)腳本代碼的解釋性程序語言 具體介紹可以參考

JavaScript

4:CSS 樣式表

5:DOM 文檔對象模型

三、XMLHttpRequest對象的具體使用

1、初始化XMLHttpRequest對象

IE瀏覽器初始化如下

var http_request=new ActiveXObject("Msxml2.XMLHTTP");

或者

var http_request=new ActiveObject("Microsoft.XMLHTTP");

非IE瀏覽器

var http_request=new XMLHttpRequest();

兩種情況的實例化代碼如下

if(window.XMLHttpRequest){
http_request=new XMLHttpRequest();
}
else if(window.ActiveObject){
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
cathc(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}

2、XMLHttpRequest對象常用方法

open()方法 用于設(shè)置進(jìn)行異步請求目標(biāo)的URL 請求方法以及其他參數(shù)信息

open("method","URL"[,asyncFlag[,"userName"[,"password"]]])

send()方法 用于向服務(wù)器發(fā)送請求 如果請求聲明為異步 該方法將立即返回 否則要等到接受到響應(yīng)為止

send(content)

setRquestHeader()方法用于為請求的HTTP頭設(shè)置值

setRequestHeader("header","value")

3、XMLHttpRequest常用屬性

onreadystatechange屬性用于指定狀態(tài)改變時所觸發(fā)的事件處理器 在Ajax中 每個狀態(tài)改變都會觸發(fā)一個事件處理器 通常會調(diào)用一個JavaScript函數(shù)

http_request.onreadystatechange=getResult;

readystate屬性用于獲取請求的狀態(tài) 包括五個屬性值 0代表未初始化 1代表正在加載 2代表已加載 3代表交互中 4代表完成

status屬性用于返回服務(wù)器的HTTP狀態(tài)碼 200表示請求成功 202表示請求被接受 400表示錯誤的請求 404表示文件未找到 500表示內(nèi)部服務(wù)器錯誤

四、與服務(wù)器通信-發(fā)送請求與處理響應(yīng)

發(fā)送get和post請求都要經(jīng)過以下四個步驟

1:初始化XMLHttpRequest對象 為了提高程序的兼容性 需要創(chuàng)建一個跨瀏覽器的XMLHtppRequest對象 并且判斷是否成功

if(window.XMLHttpRequest){
http_request=new XMLHttpRequest();
}
else if(window.ActiveObject){
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
cathc(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}

2:為XMLHttpRequest對象指定一個返回結(jié)果處理函數(shù) 用于對返回結(jié)果進(jìn)行處理

3:創(chuàng)建一個與服務(wù)器的連接 在創(chuàng)建時 需要指定發(fā)送請求的方式以及設(shè)置是否采用異步方法發(fā)送請求

4:向服務(wù)器發(fā)送請求 XMLHttpRequest對象的send方法可以向服務(wù)器發(fā)送請求 該方法需要傳遞一個參數(shù) 如果發(fā)送的時GET請求 則參數(shù)可以設(shè)置為NULL POST請求則要指定參數(shù)

處理服務(wù)器響應(yīng)

XMLHttpRequest對象提供了兩個用來訪問服務(wù)器響應(yīng)的屬性 一個時responseText屬性 返回字符串響應(yīng) 另一個時responseXML屬性 返回XML響應(yīng)

1:處理字符串響應(yīng)

通常應(yīng)用在響應(yīng)不是特別復(fù)雜的情況下

2:處理XML響應(yīng)

如果在服務(wù)器端需要生成特別復(fù)雜的響應(yīng) 那么就需要應(yīng)用XML響應(yīng) 應(yīng)用XMLHttpRequest對象的responseXML屬性 可以生成一個XML文檔

解決中文亂碼問題

1:當(dāng)接收使用GET方法提交的數(shù)據(jù)時 要將編碼轉(zhuǎn)換為GBK或者UTF-8

String seIProvince=request.getParameter("parProvince");
seIProvince=new String(seIProvince.getBytes("ISO-8859-1"),("UTF-8");

2:應(yīng)用POST方法提交數(shù)據(jù)時

String username=request.getParameter("user");
username=new String(username.getBytes("ISO-8859-1"),("UTF-8");

五、Ajax重構(gòu)

Ajax的實現(xiàn)主要依賴于XMLHttpRequest對象 如果在調(diào)用其進(jìn)行異步數(shù)據(jù)傳輸時 由于XMLHttpRequest對象的實例在處理事件完成后就會被銷毀 所以如果不對該對象進(jìn)行封裝處理,在下次需要調(diào)用它的時猴就要重新構(gòu)建,浪費資源并且浪費事件,不過JavaScript腳本語言支持OO編碼風(fēng)格,通過它將Ajax所必需的功能封裝在對象中 分為以下三步

1:創(chuàng)建一個單獨的JS文件 命名為AjaxRequest.js 并且在該文件中編寫重構(gòu)Ajax所需要的代碼

2:在需要應(yīng)用Ajax的頁面應(yīng)用以下語句

<script language="javascript" src="AjaxRequest.js"></script>

3:在應(yīng)用Ajax的頁面中編寫錯誤處理的方法 實例化Ajax對象的方法和回調(diào)函數(shù)

<script language="javascript">
 function onerror(){
alert("您的操作有錯誤");
}
function getInfo(){
var loader=new net.AjaxRequest("getInfo.jsp?nocache="+new Date().getTime(),deal_getInfo,onerror,"GET");
}
function deal_getInfo(){
document.getElementById("showInfo").innerHTML=this.req.responseText;
}
</script>

有兩個實例分別是級聯(lián)下拉列表的創(chuàng)建和顯示進(jìn)度條 代碼過多此處不展示

到此這篇關(guān)于Java Web中Ajax技術(shù)使用方法介紹的文章就介紹到這了,更多相關(guān)JavaWeb Ajax內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)猜數(shù)字游戲

    java實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • jvm排查工具箱jvm-tools下載使用詳解

    jvm排查工具箱jvm-tools下載使用詳解

    這篇文章主要為大家介紹了jvm排查工具箱jvm-tools下載使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用

    Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用

    本文主要介紹了Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Android仿微信實現(xiàn)左滑顯示刪除按鈕功能

    Android仿微信實現(xiàn)左滑顯示刪除按鈕功能

    這篇文章主要為大家詳細(xì)介紹了java仿微信實現(xiàn)左滑顯示刪除按鈕功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • JAVA 枚舉單例模式及源碼分析的實例詳解

    JAVA 枚舉單例模式及源碼分析的實例詳解

    這篇文章主要介紹了 JAVA 枚舉單例模式及源碼分析的實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • 解決RestTemplate 請求url中包含百分號 會被轉(zhuǎn)義成25的問題

    解決RestTemplate 請求url中包含百分號 會被轉(zhuǎn)義成25的問題

    這篇文章主要介紹了解決RestTemplate 請求url中包含百分號 會被轉(zhuǎn)義成25的問題,具有很好的參考價值,希望對大家有所幫助。
    2021-10-10
  • Spring?Boot?Actuator?漏洞利用小結(jié)

    Spring?Boot?Actuator?漏洞利用小結(jié)

    spring對應(yīng)兩個版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下
    2023-11-11
  • IDEA2022中部署Tomcat Web項目的流程分析

    IDEA2022中部署Tomcat Web項目的流程分析

    這篇文章主要介紹了IDEA2022中部署Tomcat Web項目,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Java中的靜態(tài)綁定和動態(tài)綁定詳細(xì)介紹

    Java中的靜態(tài)綁定和動態(tài)綁定詳細(xì)介紹

    這篇文章主要介紹了Java中的靜態(tài)綁定和動態(tài)綁定詳細(xì)介紹,在Java中存在兩種綁定方式,一種為靜態(tài)綁定,又稱作早期綁定,另一種就是動態(tài)綁定,亦稱為后期綁定,需要的朋友可以參考下
    2015-01-01
  • SpringMVC對日期類型的轉(zhuǎn)換示例

    SpringMVC對日期類型的轉(zhuǎn)換示例

    本篇文章主要介紹了SpringMVC對日期類型的轉(zhuǎn)換示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

崇礼县| 安远县| 沁阳市| 丽江市| 济南市| 临武县| 中西区| 巫溪县| 海丰县| 绥宁县| 大悟县| 新晃| 佛冈县| 开平市| 南投县| 泗水县| 额济纳旗| 恭城| 奎屯市| 宁南县| 开化县| 漠河县| 灵石县| 红桥区| 施甸县| 拜城县| 汝阳县| 商都县| 那坡县| 东港市| 九寨沟县| 永定县| 石台县| 凤山市| 福贡县| 临桂县| 阜城县| 卢氏县| 威信县| 嘉兴市| 长葛市|