🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
AJAX:即“Asynchronous Javascript And XML”(异步的JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,尤其是在一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 传统Web开发 World Wide Web(简称Web):是随着Internet的普及使用而发展起来的一门技术,其开发模式是一种请求→刷新→响应的模式,每个请求由单独的一个页面来显示,发送一个请求就会重新获取这个页面。 ![](https://box.kancloud.cn/ab8f8df2a5629b08bcabe9fe5fdcb0d1_700x390.png) Ajax采用异步通信,主要以数据交互为主;传统的web开发采用同步通信,主要以页面交互为主 ### **ajax请求步骤** 1.创建Ajax对象 ~~~ var request = new XMLHttpRequest(); ~~~ 2.连接服务器 open(method,url,async); ~~~ request.open("get","query.do",true);//异步请求 ~~~ 3.发送请求 send(string) 在使用GET方式请求时无需填写参数 在使用POST方式时参数代表着向服务器发送的数据 ~~~ xhr.open('get','random.do?max=100‘,true); xhr.send(); xhr.open('post','random.do',true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");//post请求需要设置HTTP头信息,否则发送数据有问题 xhr.send('max=100'); ~~~ 4.接收服务器相应数据 ~~~ xhr.onload = function () { console.log(xhr.responseText); } ~~~ ### 练习1.验证用户名是否存在 reg.jsp ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function check(){ var oForm = document.getElementById('form1'); var oMsg = document.getElementById('msg'); // 发送ajax请求 // 1.创建Ajax对象 var request = new XMLHttpRequest(); // 2.连接服务器 /* request.open('get','${ pageContext.request.contextPath }/reg.do?username='+oForm.username.value,true); */ request.open('post','${ pageContext.request.contextPath }/reg.do',true); // 3.发送请求 request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.send('username='+oForm.username.value); // 4.接收服务器相应数据 request.onload = function(){ if(request.responseText == 1){ oMsg.style.color='red'; oMsg.innerHTML = '无法注册'; }else{ oMsg.style.color='green'; oMsg.innerHTML = '可以注册'; } } } </script> </head> <body> <form id="form1" action="${ pageContext.request.contextPath }/reg.do" method="post"> <input type="text" name="username" onblur="check()"><span id="msg"></span><br/> <input type="password" name="password"><br/> <input type="submit"> </form> </body> </html> ~~~ RegisterServlet ~~~ package com.neusoft.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/reg.do") public class RegisterServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); if(username.equals("mike")) { response.getWriter().println(1); }else { response.getWriter().println(0); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } } ~~~