前端ajax
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>欢迎注册</title> <link href="css/register.css" rel="stylesheet"></head><body><div class="form-div"> <div class="reg-content"> <h1>欢迎注册</h1> <span>已有帐号?</span> <a href="login.html">登录</a> </div> <form id="reg-form" action="#" method="get"> <table> <tr> <td>用户名</td> <td class="inputs"> <input name="username" type="text" id="username"> <br> <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span> </td> </tr> <tr> <td>密码</td> <td class="inputs"> <input name="password" type="password" id="password"> <br> <span id="password_err" class="err_msg" style="display: none">用户名已存在</span> </td> </tr> <tr> <td>验证码</td> <td class="inputs"> <input name="checkCode" type="text" id="checkCode"> <img src="imgs/a.jpg"> <a href="#" id="changeImg">看不清?</a> </td> </tr> </table> <div class="buttons"> <input value="注 册" type="submit" id="reg_btn"> </div> <br class="clear"> </form></div><script> // 1. 给用户名输入框绑定 失去焦点事件 document.getElementById("username").onblur = function () { // 2. 发送ajax请求 // 获取用户名的值 var username = this.value; // 2.1. 创建核心对象 var xhttp; if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.2 发送请求 <!-- 前端ajax要发送到后端去,写绝对路径 --> xhttp.open("GET", "http://localhost:8080/ajax-demo/selectUserServlet"); xhttp.send(); // 2.3. 获取响应 xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // alert(this.responseText); // 判断 // XMLHttpRequest.responseText // 在一个请求被发送后,从服务器端返回文本。 // XMLHttpRequest.responseText 在一个请求被发送后, // 从服务器端返回文本。 if (this.responseText == "true"){ // 返回请求得到的文本, // 如果该文本结果为true,则执行以下代码 // 用户名存在 显示提示信息 document.getElementById("username_err").style.display = ''; }else { // 用户名不存在 清除提示信息 document.getElementById("username_err").style.display = 'none'; } } }; }</script></body></html>
后端Servlet代码
package com.itheima.web.servlet;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;@WebServlet("/selectUserServlet")public class SelectUserServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 接收用户名 String username = request.getParameter("username"); // 2. 调用service查询User对象 boolean flag = true; // 3. 响应标记 response.getWriter().write("" + flag); // 将标记的结果转换成字符串,写在响应的数据中 } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}