13、Ajax的使用

一、AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

  a)、AJAX = 异步 JavaScript 和 XML

  b)、AJAX 是一种用于创建快速动态网页的技术。

  通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。例如我们在用户注册的时候需要验证该注册名是否已经存在,这时候就可以使用Ajax实现与服务器的的通信来验证。

二、AJAX的使用:

  1、创建 XMLHttpRequest 对象:所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象(详见W3School)

  2、向服务器发送请求:与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用

  3、处理返回数据

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10       <script type="text/javascript">
11         function ajax(){
12           var url = "<%=request.getContextPath() %>/servlet/AjaxTest";
13           var value = document.getElementById("userName").value;
14             var xmlHttp = new XMLHttpRequest();
15             xmlHttp.onreadystatechange = function(){
16             if(xmlHttp.readyState == 4){
17                 if("unsucceed"== xmlHttp.responseText){
18                    document.getElementById("userName").value=null;
19                    document.getElementById("userName").placeholder="该用户已被占用,请重新输入";  
20                  }
21             }
22         };
23             xmlHttp.open("POST", url, true);// true:异步调用    false:同步调用
24         xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");// 设置请求头信息
25         xmlHttp.send("userName="+value);
26         }
27         function submit_user(){
28         if(document.getElementById("userName").value.length>1){
29             if(document.getElementById("passWord").value.length > 5)
30               document.getElementById("user").submit();
31           else{
32               document.getElementById("passWord").value=null;
33               document.getElementById("passWord").placeholder="请重新输入密码";
34               alert("请输入6位数以上密码");
35           } 
36         }else
37         alert("请先输入用户名");
38         }
39       </script>
40   </head>
41   <body>
42     <form id="user" method="get" action="<%=request.getContextPath()%>/servlet/LoginTest">
43         <table>
44       <tr>
45           <td>姓名<td/>
46           <td><input type="text" id="userName" name="userName" onblur="ajax()" placeholder="请输入姓名"><td/>
47       <tr/>
48       <tr>
49           <td>密码<td/>
50           <td><input type="password" id="passWord" name="passWord"  placeholder="请输入密码"><td/>
51       <tr/>
52       <tr>
53           <td><td/>
54           <td><input type="button"  onClick="submit_user()" value="注册"/><td/>
55       <tr/>
56       </table>
57     </form>
58   </body>
59 </html>
View Code
原文地址:https://www.cnblogs.com/czj-zhm/p/6502155.html