国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

ajax實現簡單實時驗證功能

2024-09-01 08:30:59
字體:
來源:轉載
供稿:網友

什么是ajax

Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創建交互式網頁應用的網頁開發技術。

Ajax = 異步 JavaScript 和 XML(標準通用標記語言的子集)。

Ajax 是一種用于創建快速動態網頁的技術。

Ajax 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。

 通過在后臺與服務器進行少量數據交換,Ajax 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。

這是百度對它的定義,足夠詳細。
 值得補充的一點是對異步的理解,異步是相對于同步來說的,在這里他們指的是服務器和瀏覽器的交互模式。

 同步,每次請求發出之后,用戶操作即被阻塞,必須要求返回響應后繼續操作。而異步指的是發出請求后,用戶無需等待響應,一切由ajax來實現,無需進行刷新網頁就可以局部更新數據。提高了倆端的溝通效率。

來個小demo

做一個無刷新驗證表單的demo,在對話框中輸入用戶名,在后臺進行驗證,使用ajax技術。

項目結構,使用maven構建

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頁面中引入js,絕對路徑的方式 -->    <script src="${pageContext.request.contextPath}/js/main.js"></script></body></html>

main.js

alert("use ajax!")//創建XMLHttpRequest對象,在不同瀏覽器function createXMLHTTP() {  if(window.XMLHttpRequest){    // IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼    xmlhttp = new XMLHttpRequest();  }else {    // IE6, IE5 瀏覽器執行代碼    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  }  return xmlhttp;}function CallServer() {  var username = document.getElementById("username").value;  // 判斷為空  if ((username == null) || (username == "")) return;  var xmlhttp = createXMLHTTP();  // 構建請求url  var url = "/loginServlet"+"?"+"username="+username;  //狀態碼改變調用事件  xmlhttp.onreadystatechange = function () {    //正常返回,替換msg內容    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){      document.getElementById("msg").innerHTML = xmlhttp.responseText;    }  }  //異步提交請求  xmlhttp.open("GET",url,true);  //發送請求  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處理請求 */public class loginServlet extends HttpServlet {  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    //設置編碼和響應頭    request.setCharacterEncoding("UTF-8");    response.setContentType("text/xml;charset=UTF-8");    response.setHeader("Cache-Control", "no-cache");    //獲取參數    String username = request.getParameter("username");    String msg = "";    if("lbw".equals(username)){      msg = "名稱正確";    }else {      msg = "名稱錯誤";    }    PrintWriter out = response.getWriter();    out.println(msg);  }  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    doPost(request,response);  }}

開始測試

輸入localhost:8888/login.jsp,彈出窗口

 代表在jsp中引入js成功

在輸入框輸入測試數據

 由Servlet中邏輯決定,返回錯誤信息

 由Servlet中邏輯決定,返回成功信息

由此,初步實現了ajax異步請求,達到了實時驗證的要求

一些小細節

1.在使用maven構建項目,注意Project Structure -> Facets,這里設置web.xml和webapp的路徑,idea會使用到

2.在引入js時,注意使用相對路徑的方式來進行映入,并且用到EL表達式要開啟isELIgnored="false"?`避免沒有解析。

總結

以上所述是小編給大家介紹的ajax實現簡單實時驗證功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆河县| 闸北区| 榕江县| 台南市| 张掖市| 称多县| 昆山市| 泸西县| 肥东县| 波密县| 庄河市| 巍山| 新沂市| 广丰县| 林芝县| 平凉市| 娱乐| 虞城县| 万源市| 宝丰县| 静宁县| 垣曲县| 武定县| 延安市| 道真| 常熟市| 敖汉旗| 巢湖市| 桦南县| 福安市| 汉川市| 曲沃县| 苏州市| 侯马市| 陈巴尔虎旗| 泸溪县| 东安县| 临安市| 中宁县| 垦利县| 邵阳县|