本篇文章給大家分享的是有關(guān)使用ajax怎么實(shí)現(xiàn)一個(gè)實(shí)時(shí)驗(yàn)證功能,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、沙灣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
什么是ajax
Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù)。
Ajax = 異步 JavaScript 和 XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)。
Ajax 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。
Ajax 是一種在無(wú)需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù)。
通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。
傳統(tǒng)的網(wǎng)頁(yè)(不使用 Ajax)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁(yè)頁(yè)面。
這是百度對(duì)它的定義,足夠詳細(xì)。
值得補(bǔ)充的一點(diǎn)是對(duì)異步的理解,異步是相對(duì)于同步來(lái)說(shuō)的,在這里他們指的是服務(wù)器和瀏覽器的交互模式。
同步,每次請(qǐng)求發(fā)出之后,用戶操作即被阻塞,必須要求返回響應(yīng)后繼續(xù)操作。而異步指的是發(fā)出請(qǐng)求后,用戶無(wú)需等待響應(yīng),一切由ajax來(lái)實(shí)現(xiàn),無(wú)需進(jìn)行刷新網(wǎng)頁(yè)就可以局部更新數(shù)據(jù)。提高了倆端的溝通效率。
來(lái)個(gè)小demo
做一個(gè)無(wú)刷新驗(yàn)證表單的demo,在對(duì)話框中輸入用戶名,在后臺(tái)進(jìn)行驗(yàn)證,使用ajax技術(shù)。
項(xiàng)目結(jié)構(gòu),使用maven構(gòu)建
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>login</title> </head> <body>
歡迎登陸:
用戶名:<input type="text" name="username" id="username" onchange="CallServer()"/> <!-- 顯示提示信息 --> <div id="msg"></div> <!-- 在jsp頁(yè)面中引入js,絕對(duì)路徑的方式 --> <script src="${pageContext.request.contextPath}/js/main.js"></script> </body> </html>
main.js
alert("use ajax!") //創(chuàng)建XMLHttpRequest對(duì)象,在不同瀏覽器 function createXMLHTTP() { if(window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼 xmlhttp = new XMLHttpRequest(); }else { // IE6, IE5 瀏覽器執(zhí)行代碼 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } function CallServer() { var username = document.getElementById("username").value; // 判斷為空 if ((username == null) || (username == "")) return; var xmlhttp = createXMLHTTP(); // 構(gòu)建請(qǐng)求url var url = "/loginServlet"+"?"+"username="+username; //狀態(tài)碼改變調(diào)用事件 xmlhttp.onreadystatechange = function () { //正常返回,替換msg內(nèi)容 if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ document.getElementById("msg").innerHTML = xmlhttp.responseText; } } //異步提交請(qǐng)求 xmlhttp.open("GET",url,true); //發(fā)送請(qǐng)求 xmlhttp.send(); }
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.lbw.servlet.loginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> </web-app>
loginServlet.java
package com.lbw.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * 后端使用Servlet處理請(qǐng)求 */ public class loginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設(shè)置編碼和響應(yīng)頭 request.setCharacterEncoding("UTF-8"); response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); //獲取參數(shù) String username = request.getParameter("username"); String msg = ""; if("lbw".equals(username)){ msg = "名稱正確"; }else { msg = "名稱錯(cuò)誤"; } PrintWriter out = response.getWriter(); out.println(msg); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
開始測(cè)試
輸入localhost:8888/login.jsp,彈出窗口
代表在jsp中引入js成功
在輸入框輸入測(cè)試數(shù)據(jù)
由Servlet中邏輯決定,返回錯(cuò)誤信息
由Servlet中邏輯決定,返回成功信息
由此,初步實(shí)現(xiàn)了ajax異步請(qǐng)求,達(dá)到了實(shí)時(shí)驗(yàn)證的要求
一些小細(xì)節(jié)
1.在使用maven構(gòu)建項(xiàng)目,注意Project Structure -> Facets
,這里設(shè)置web.xml和webapp的路徑,idea會(huì)使用到
2.在引入js時(shí),注意使用相對(duì)路徑的方式來(lái)進(jìn)行映入,并且用到EL表達(dá)式要開啟isELIgnored="false"·`避免沒(méi)有解析。
以上就是使用ajax怎么實(shí)現(xiàn)一個(gè)實(shí)時(shí)驗(yàn)證功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前文章:使用ajax怎么實(shí)現(xiàn)一個(gè)實(shí)時(shí)驗(yàn)證功能
轉(zhuǎn)載源于:http://www.aaarwkj.com/article44/jsddee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、靜態(tài)網(wǎng)站、定制網(wǎng)站、軟件開發(fā)、建站公司、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)