Ajax_js实现局部刷新(检查用户名是否可用)

需求:使用Ajax,检查用户名是否可用个,当焦点离开时,在输入框后面给出提示信息

1.写一个servlet

public class CheckServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
Thread.sleep(3000);
}catch(InterruptedException e){
e.printStackTrace();
}
response.setContentType("text/plain;charset=utf-8");
//获得这个变量要在前面这句话之后添加,不然会出现乱码
PrintWriter out = response.getWriter();
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
if("scott".equals(name)){
out.println("用户名已被占用");
}else{
out.println("用户名可用");
}
out.flush();
out.close();
}

}

2.在web.xml中配置servlet

<servlet>
    <servlet-name>CheckServlet</servlet-name>
    <servlet-class>servlet.CheckServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CheckServlet</servlet-name>
    <url-pattern>/check.do</url-pattern>

  </servlet-mapping>

3.编写index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
      function getXhr(){
        var xhr;
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return xhr;
      };
    </script>
    <script type="text/javascript">
        function checkname(){
        var name = document.getElementById("username").value;
        var xhr = getXhr();
        xhr.open("post","check.do");
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
        xhr.onreadystatechange=function(){
          if(xhr.readyState==4&&xhr.status==200){
            var msg = xhr.responseText;
            document.getElementById("username_msg").innerHTML=msg;
          }
        };
        xhr.send("name="+name);
        document.getElementById("username_msg").innerHTML="正在检测...";
      }
    </script>
  </head>
  <body>
    <input type="text" id="username" onblur="checkname()">
    <span id="username_msg"></span>
  </body>

</html>

4.效果

初始效果:





猜你喜欢

转载自blog.csdn.net/qq_39924152/article/details/80642800