检验用户名是否唯一

检验用户名是否唯一(Ajax与服务器的通信)

一.创建一个jsp文件,并在此文件中添加一个收集用户信息的注册信息表

代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>注册</title>
     <link href="标记样式.css">
  </head>
  <body>
  <div id="div1">
  <form method="post" action="index.jsp">
    <table>
      <tr>
        <td>用户名:</td><td><input type="text" name="username" id="username"></td>
      </tr>
      <tr>
        <td>密码:</td><td><input type="password" name="psw1" id="psw1"></td>
      </tr>
      <tr>
        <td>确认密码:</td><td><input type="password" name="psw2" id="psw2"></td>
      </tr>
      <tr>
        <td>邮箱:</td><td><input type="text" name="mail" id="mail"></td>
      </tr>
      <th>
        <input type="submit">
      </th>
    </table>
  </form>
  </div>
  </body>
</html>

所创建表单如下:该表单非常简陋,后期也可以适当优化

 二.在页面合适位置添加一个用于显示提示信息的<div>标记,并通过css控制该标记的样式

css代码:

#div1{
    width: 400px;
    height: 200px;
    padding: 50px;
    margin: auto;
    margin-top: 15%;
}
#div2{
    position: absolute;
    left: 331px;
    top: 39px;
    width: 98px;
    height: 48px;
    padding-top: 45px;
    padding-left: 25px;
    padding-right: 25px;
    z-index: 1;
    display: none;          /*设置默认不显示*/
    color: red;
}

三.编写一个JS函数,在此函数中初始化XMLHttpRequest对象,并与服务器链接

代码如下:

  <script>
    function fun(url) {
      http_request=false;//设置为非IE浏览器
      if (window.XMLHttpRequest){
        http_request=new XMLHttpRequest();//创建XMLHttpPequest对象实例
      }else if(window.ActiveXObject){//设置为IE浏览器
        try{
          http_request = new ActiveXObject("Msxml2.XMLHTTP");//创建XMLHttpPequest对象实例
        }catch (e) {
          try{
            http_request = new ActiveXObject("Microsoft.XMLHTTP")
          }catch(e){}
        }
      }
      if(http_request){
        alert("不能创建XMLHttpPequest对象实例");//弹窗提示
        return false;
      }
      http_request.onreadystatechange = getResult;//回调函数,还未编写,下一步即将编写
      http_request.open('GET',url,true);
      http_request.send(null);
    }

  </script>

四.编写回调函数getResult

  function getResult() {
          if (http_request.readyState ==4){//判断请求状态
            if (http_request.status == 200){//请求成功后返回
              document.getElementById("div2").innerHTML=http_request.responseText;//设置提示内容
              document.getElementById("div2").style.display="block";//显示提示内容
            }else{
              alert("请求的页面异常!!!");
            }
          }
      }

五.编写用户检测方法CheckUser()

   function CheckUser(username) {
      if (username.value==null){
        alert("请输入用户名");
        username.focus();
        return;
      }else{
        fun('checkuser.jsp?user='+username.value);
      }
      }

六.编写检测用户名是否被注册的处理页面checkUser.jsp

在该页面中判断输入的用户名是否注册,并应用JSP内置对象out中的println()方法输出结果,代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %>
<%

        String[] userList={"用户一","user1","wtf"};
        String user = new String(request.getParameter("user").getBytes("ISO-8859-1"),"utf-8");//获取用户名
        Arrays.sort(userList);
        int result = Arrays.binarySearch(userList,user);
        if ( result>-1 ){
            out.println("该用户名已被使用");
        }else{
            out.println("恭喜您注册成功");
        }
%>

猜你喜欢

转载自blog.csdn.net/qq_52477159/article/details/123854662