jQuery+Ajax实现用户名重名实时检测

发布时间 - 2026-01-11 01:37:03    点击率:

利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现。这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输。

register.jsp 注册显示页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>

<body>
 <form action="login" method="post" id="myform">
  <table align="center">
   <tr>
    <td>用户名:</td>
    <td>
     <input type="text" name="name" id="username" title="用户名" />
     <div id="message"></div>
    </td>
   </tr>
   <tr>
    <td>密码:</td>
    <td><input type="password" name="pwd" id="userpwd" title="密码" />
    </td>
   </tr>
   <tr>
    <td>性别:</td>
    <td><input type="radio" name="sex" value="男" title="性别" />男 <input
     type="radio" name="sex" value="女" title="性别" />女</td>
   </tr>
   <tr>
    <td>年龄:</td>
    <td><input type="text" name="age" title="年龄" />
    </td>
   </tr>
   <tr>
    <td>Email:</td>
    <td><input type="text" name="email" title="Email" />
    </td>
   </tr>
   <tr>
    <td colspan="2" align="center"><input type="button" value="注 册"
     onclick="check()" /> <input type="reset" value="重 置" /></td>
   </tr>
  </table>
 </form>
</body>
<script type="text/javascript" src="${pageContext.request.contextPath }/script/jquery-3.2.1.js"></script>

<script type="text/javascript">
 // 检查表单元素的值是否为空
 function check() {
  var myform = document.getElementById("myform");
  for ( var i = 0; i < myform.length; i++) {
   if (myform.elements[i].value == "") {
    alert(myform.elements[i].title + "不能为空");
    myform.elements[i].focus();
    return;
   }
  }
  myform.submit(); // 表单中最后input提交标签用的是button类型,首先不提交表单,在js判断表单项都不为空时 再提交表单。
 }

 $(function(){
  $(":input[name='name']").blur(function(){
   var val = $(this).val();
   val = $.trim(val);

   if(val != ""){
    var url = "${pageContext.request.contextPath }/UserServlet"; // 将前端的业务转到后端Servlet来处理。最后Servlet再将结果返回给前端JSP页面
    var args = {"userName":val, "time":new Date()};

    $.post(url, args, function(data){ // URL中处理的结果都保存在data数据中,而data中的格式是Servlet中返回的结果格式,即为html
     $("#message").html(data);  //将data结果附加到div中
    });
   }
  });
 });
</script>
</html>

UserServlet 逻辑处理Servlet类,用于对用户重名的判断以及响应处理结果的输出等。其中用于数据库检测重名的方法省略了(LoginDao.getInstance().checkUserName(userName.trim()); // 查找数据库是否存在该用户名)

package com.servlet.user;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.LoginDao;
import com.user.UserInfo;

public class UserServlet extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html; charset=UTF-8"); // 设置响应结果的格式为text/html,字符集为UTF-8
  response.setCharacterEncoding("UTF-8"); // 设置响应结果的字符编码为UTF-8
  // 禁止缓存
  response.setHeader("Cache-Control", "no-store,no-cache,must-revalidate");
  response.setHeader("Cache-Control", "post-check=0,pre-check=0");
  response.setDateHeader("Expires", 0);
  response.setHeader("Pragma", "no-cache");

  PrintWriter out = response.getWriter();
  out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  // 从httpRequest()方法中获得请求参数值
  // 通过httpRequest()方法封装的请求参数被编码为UTF-8格式,此处若想还原原来的编码格式,则需要通过UTF-8格式解码

  String userName = request.getParameter("userName");
  String result = null;
  boolean check = LoginDao.getInstance().checkUserName(userName.trim()); // 查找数据库是否存在该用户名
  if (check) {
   result = "<font color='red'>该用户已经被使用</font>";
  } else {
   result = "<font color='green'>该用户名可以使用</font>";
  }
  response.getWriter().print(result); // 将结果输出到response响应流中
 }

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  this.doPost(req, resp);
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jQuery  # Ajax用户名重名检测  # jQuery用户名重名检测  # Ajax用户注册重名检测  # 利用Ajax检测用户名是否被占用的完整实例  # JQuery Ajax如何实现注册检测用户名  # PHP+Ajax实现的检测用户名功能简单示例  # AJAX应用实例之检测用户名是否唯一(实例代码)  # AJAX实现无刷新检测用户名功能  # 使用Ajax实时检测"用户名、邮箱等"是否已经存在  # PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程  # Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)  # jquery ajax 检测用户注册时用户名是否存在  # PHP+AJAX实现无刷新注册(带用户名实时检测)  # ajax 检测用户名是否被占用  # AJAX检测用户名是否存在的方法  # 表单  # 为空  # 该用  # 是否存在  # 的是  # 都不  # 转到  # 可以使用  # 这篇  # 装了  # 该用户  # 即为  # 再将  # 用户注册  # 大家多多  # 再提  # 格式为  # 则需  # 后端  # 博客 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用查询构建器?(Query Builder高级用法)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  图册素材网站设计制作软件,图册的导出方式有几种?  网站制作报价单模板图片,小松挖机官方网站报价?  长沙做网站要多少钱,长沙国安网络怎么样?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Python并发异常传播_错误处理解析【教程】  简单实现Android文件上传  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  JavaScript实现Fly Bird小游戏  大同网页,大同瑞慈医院官网?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel怎么在Controller之外的地方验证数据  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  javascript基于原型链的继承及call和apply函数用法分析  Laravel如何优化应用性能?(缓存和优化命令)  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  新三国志曹操传主线渭水交兵攻略  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  IOS倒计时设置UIButton标题title的抖动问题  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何做网站制作流程,*游戏网站怎么搭建?  昵图网官方站入口 昵图网素材图库官网入口  Laravel如何发送系统通知?(Notification渠道示例)  制作电商网页,电商供应链怎么做?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  南京网站制作费用,南京远驱官方网站?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Python文件异常处理策略_健壮性说明【指导】  Android 常见的图片加载框架详细介绍  如何在七牛云存储上搭建网站并设置自定义域名?  如何在Tomcat中配置并部署网站项目?  香港服务器部署网站为何提示未备案?  如何获取PHP WAP自助建站系统源码?  如何快速完成中国万网建站详细流程?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何快速生成专业多端适配建站电话?  制作公司内部网站有哪些,内网如何建网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何为不同团队 ID 动态生成多个“认领值班”按钮