主頁(yè) > 知識(shí)庫(kù) > ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能

ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能

熱門標(biāo)簽:東平縣地圖標(biāo)注app 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 怎樣在地圖標(biāo)注文字 地圖標(biāo)注推銷坑人 電銷機(jī)器人 長(zhǎng)春 立陶宛地圖標(biāo)注 上海企業(yè)外呼系統(tǒng)價(jià)錢 河間市地圖標(biāo)注app 中國(guó)地圖標(biāo)注不明確情況介紹表

什么是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 是一種在無需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù)。

 通過在后臺(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ì)于同步來說的,在這里他們指的是服務(wù)器和瀏覽器的交互模式。

 同步,每次請(qǐng)求發(fā)出之后,用戶操作即被阻塞,必須要求返回響應(yīng)后繼續(xù)操作。而異步指的是發(fā)出請(qǐng)求后,用戶無需等待響應(yīng),一切由ajax來實(shí)現(xiàn),無需進(jìn)行刷新網(wǎng)頁(yè)就可以局部更新數(shù)據(jù)。提高了倆端的溝通效率。

來個(gè)小demo

做一個(gè)無刷新驗(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ì)路徑的方式來進(jìn)行映入,并且用到EL表達(dá)式要開啟isELIgnored="false"·`避免沒有解析。

總結(jié)

以上所述是小編給大家介紹的ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

您可能感興趣的文章:
  • PHP+Ajax實(shí)現(xiàn)驗(yàn)證碼的實(shí)時(shí)驗(yàn)證
  • php+ajax注冊(cè)實(shí)時(shí)驗(yàn)證功能
  • jquery+ajax實(shí)現(xiàn)注冊(cè)實(shí)時(shí)驗(yàn)證實(shí)例詳解
  • Ajax實(shí)時(shí)驗(yàn)證用戶名/郵箱等是否已經(jīng)存在的代碼打包

標(biāo)簽:本溪 內(nèi)江 益陽(yáng) 遼寧 營(yíng)口 玉樹 銅川 四川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能》,本文關(guān)鍵詞  ajax,實(shí)現(xiàn),簡(jiǎn)單,實(shí)時(shí),驗(yàn)證,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ajax實(shí)現(xiàn)簡(jiǎn)單實(shí)時(shí)驗(yàn)證功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章