校验用户名是否存在的Ajax

本文介绍了一个使用JavaScript实现的前端用户名实时验证案例。该案例通过AJAX技术与后端交互,利用XMLHttpRequest对象发送异步请求到服务器端进行用户名检查,并根据服务器返回的结果更新前端提示信息。同时介绍了后端Java代码如何处理请求并返回响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
 var req;
 function validate() {

//获取用户名的文本框
  var idField = document.getElementById("userid");
//指定异步访问的url 

 var url = "Validate.jsp?id=" + escape(idField.value);
  if(window.XMLHttpRequest) {
   req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
   req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  req.open("GET", url, true);
  req.onreadystatechange = callback;
  req.send(null);
 }
 
 function callback() {
  if(req.readyState == 4) {
   if(req.status == 200) {
    //alert(req.responseText);

    //获取服务器返回的结果,因为服务器是以xml文件的形式返回的
    var msg = req.responseXML.getElementsByTagName("msg")[0];
    //alert(msg);

    
          setMsg(msg.childNodes[0].nodeValue);
   }
  }
 }
 
 function setMsg(msg) {
  //alert(msg);
  mdiv = document.getElementById("usermsg");
  if(msg == "invalid") {
   mdiv.innerHTML = "<font color='red'>username exists</font>";
  } else {
   mdiv.innerHTML = "<font color='green'>congratulations! you can use this username!</font>";
  }
 }
 

</script>

 

//后台的jsp

<%@ page import="java.sql.*,com.bjsxt.shopping.util.*" %>
<%
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); //prevents catching at proxy server
System.out.println(request.getParameter("id"));
String paramUserName = request.getParameter("id");
if(paramUserName != null && !"".equals(paramUserName)){
 //access the db
 Connection conn = DB.getConn();
 String sql = "select username from user where username = ?";
 PreparedStatement pstm = DB.prepare(conn,sql);
 pstm.setString(1,paramUserName);
 ResultSet rs = pstm.executeQuery();
 if(rs.next()){
  if(paramUserName.equals(rs.getString(1))){
   response.getWriter().write("<msg>invalid</msg>");
  }
 }else {
  response.getWriter().write("<msg>valid</msg>");
 }
 DB.close(rs);
 DB.close(rs);
 DB.close(pstm);
 
}
%>

注意:DB是一个获取连接的类

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值