php验证用户名重名,jQuery和Ajax实现用户名重名详解

利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现。这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输。本文主要为大家详细介绍了jQuery Ajax实现用户名重名实时检测,针对用户注册时出现的用户名重名问题进行自动检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

register.jsp 注册显示页面

用户名:
密码:
性别:

type="radio" name="sex" value="女" title="性别" />女

年龄:
Email:

οnclick="check()" />

// 检查表单元素的值是否为空

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结果附加到p中

});

}

});

});

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 = "该用户已经被使用";

} else {

result = "该用户名可以使用";

}

response.getWriter().print(result); // 将结果输出到response响应流中

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

this.doPost(req, resp);

}

}

相关推荐:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值