09---Ajax02(异步验证)

在进行一个新用户的注册前,必须保证用户的ID唯一,不能重复;
servlet:
 package check.lid.servlet;
 import java.sql.*;
 import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;

 public class CheckServlet extends HttpServlet{
  public static final String DBDRIVEDR="org.gjt.mm.mysql.Driver";
  public static final String DBURL="jdbc:mysql://localhost:3306/lid";
  public static final String DBUSERNAME="root";
  public static final String DBPASSWORD="123";
  public Connection conn=null;
  
  public void doGet(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException{
   this.doPost(request,response);
   }
  public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException{
   PrintWriter out=response.getWriter();
   String userid=request.getParameter("userid");
   request.setCharacterEncoding("GBK");
   response.setContentType("text/html");
   conn=null;
   PreparedStatement pstmt=null;
   ResultSet rs=null;
   try{
    Class.forName(DBDRIVEDR);
    conn=DriverManager.getConnection

(DBURL,DBUSERNAME,DBPASSWORD);
    String sql="select count(userid) from user where userid=?";
    pstmt=conn.prepareStatement(sql);
    pstmt.setString(1,userid);
    rs=pstmt.executeQuery();
    if(rs.next()){
      if(rs.getInt(1)>0){
       out.print("true");
       }
      else{
       out.print("false");
       }
     }
    }
   catch(Exception e){
    e.printStackTrace();
    }
   finally{
    try{
     conn.close();
     }
    catch(Exception e){
     }
    }
   }
  }

在web.xml中进行配置:
 <servlet>
   <servlet-name>CheckServlet</servlet-name>
   <servlet-class>check.lid.servlet.CheckServlet</servlet-class>
  </servlet>
 </servlet-mapping>
   <servlet-mapping>
   <servlet-name>CheckServlet</servlet-name>
   <url-pattern>/ajax_demo1/CheckServlet</url-pattern>
  </servlet-mapping>

启动服务器;

<html>
<head>
<scripte>
  var xmlHttp;
  var flag=false;
  function createXMLHttp(){
   if(window.XMLHttpRequest){//判断当前使用的浏览器
    xmlHttp=new XMLHttpRequest();//表示是使用的FireFox内核的浏览


    }esle{         //表示使用的是ie浏览器
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   
  function checkUserid(userid){
   createXMLHttp();
   xmlHttp.open("POST","CheckServlet?userid="+userid);
   xmlHttp.onreadystatechange=checkUseridCallback;
   xmlHttp.send(null);
  }
  function checkUseridCallback(){
   if(xmlHttp.readyState==4){
    if(xmlHttp.status==200){
     var text=xmlHttp.responseText;
     if(text=="true"){
     document.getElementById("msg").innerHtml="用户ID重复

";
     flag=false;
     }else{
     document.getElementById("msg").innerHtml="此用户ID可

以注册";
     flag=true;
     }
     
    }
  }
  funcition checkForm(){
   return flag;
  }
 </script>
</head>
 <body>
  <form action="regist.jsp" method="post" οnsubmit="return checkForm()">
   用户ID:<input type="text" name="userid" οnblur="checkUserId

(this.value)">
    <span id="msg"></span><br>
   姓名:<input type="text" name="name"><br>
   密码:<input type="password" name="password">
   <input type="submit" value="注册">
   <input type="reset" value="重置">
  </form>
 </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值