异步校验用户名是否存在

第一步:

  导入jquery

<script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>

第二步:

  建个表单和输入框

<body>
    <form >
        输入用户名:<input type="text" id="username" >
    </form>
</body>

第三步:

  写JS代码,blur()方法

<script type="text/javascript">
    $(function(){
        $("#username").blur(function(){
            //1、失去焦点,获得输入框的内容
            var usernameInput = $(this).val();
            //2、去服务端校验该用户名是否存在
            $.post(
                "${pageContext.request.contextPath}/checkUsernameServlet",
                {"username":usernameInput},
                function(data){
                    var isExist = data.isExist;
                    //3、根据返回的isExist动态地显示信息
                    var usernameInfo = "";
                    if(isExist){
                        //该用户存在
                        usernameInfo = "该用户名已经存在"
                    }else{
                        usernameInfo = "该用户名可以使用"
                    }
                    $("#usernameInfo").html(usernameInfo);
                },
                "json"
            );
        });
    });
</script>

第四步:

  在web层创建Servlet(我分为web,service,dao和domain,domain负责封装,因为只有一个username参数,就没用到domain)

  以JSON格式返回isExist

public class CheckUsernameServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        //获得要校验的用户名
        String username = request.getParameter("username");
        //传递username到service
        UserService service = new UserService();
        boolean  isExist = false;
        try {
            isExist = service.checkUsername(username);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        response.getWriter().write("{\"isExist\":"+isExist+"}");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request,response);
    }

}

第五步:

  创建Service

public class UserService {

    public boolean checkUsername(String username) throws SQLException {
        UserDao dao = new UserDao();
        Long isExist = dao.checkUsername(username);
        return isExist>0?true:false;
    }

}

第六步:

  创建Dao(注:使用的是C3P0和DBUtils,所以要导入各种包和配置文件)

public class UserDao {

    public Long checkUsername(String username) throws SQLException {
        QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());
        String sql = "select count(*) from user where username = ?";
        Long query = (Long) runner.query(sql, new ScalarHandler(),username);
        return query;
    }
}

第七步,代码完成并测试

原文地址:https://www.cnblogs.com/yg1024/p/8366495.html

时间: 2024-10-11 15:39:52

异步校验用户名是否存在的相关文章

关于ajax+jsp实现异步校验用户名是否存在的实例(.txt文本)

<html> <head> <title>用户注册</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <script language="javascript" type="text/javascript"> <!-- //定义用于存储XMLHttp

力所能及之使用Struts控制器异步校验用户名是否重复

操作系统:Windows 7 应用程序服务器:apache-tomcat-6.0.18 开发工具:MyEclipse8.6 Java版本:JDK1.6 MyBatis: 3.2.2 Struts版本:struts-2.3 jQuery版本:jquery-1.4.2.js MySql版本: 5.0 MySQL Community Server (GPL) mysql-connector-java:5.0.18 2013年4月16日注:本例中采用的JSON数据格式,推荐使用性能更好的jackson进

使用Ajax完成用户名异步校验--【SSH】

1.事件触发--onblur <td><!-- onblur用户离开输入框的时候执行 --> <input type="text" id="username" name="username" class="text" maxlength="20" onblur="checkUsername()"> <span id="span1&quo

AJAX异步校验

前台JS代码 /*异步验证用户名的输入格式以及是否存在*/ function CheckUsername(){ /*取到用户名输入框*/ var nametxt = document.getElementById("username"); /*获取输入的用户名值*/ var username = nametxt.value; /*获取到装错误信息的span框*/ var sp = document.getElementById("usernameError"); v

问答项目---登陆账号密码登陆做AJAX异步校验

异步验证管理员帐号方法: /* 异步验证管理员帐号 */ public function checkAccount(){ if(!IS_AJAX){echo "页面不存在";die();}; $where = array( //'account' => $_POST['username'] 'account' => I('post.username') ); if(M('admin')->where($where)->find()){ echo 1; }else

基于AJAX用户注册信息异步校验

周末无事,自己写了一个用户注册信息的,异步校验.不多说,直接上源码: check.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+reque

网页中使用传统方法实现异步校验详解

学习JavaScript异步校验时往往是从最传统的XMLHttpRequest学起,今天星期六,我来谈一下对传统校验的认识: 代码1--index.jsp文件: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String basePath = request.getScheme()+":

利用ajax异步校验验证码(转)

利用ajax异步校验验证码 示例结果如图所示 具体步骤如下: step1: jsp页面及js脚本 [html] view plain copy print? <%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> <html> <head> <title>form</title> <script type="

AJAX:校验用户名是否被注册

1. ajax是什么? * asynchronous javascript and xml:异步的js和xml * 它能使用js访问服务器,而且是异步访问! * 服务器给客户端的响应一般是整个页面,一个html完整页面!但在ajax中因为是局部刷新,那么服务器就不用再响应整个页面!而只是数据! > json:它是js提供的数据交互格式,它在ajax中最受欢迎! 2. 异步交互和同步交互 * 同步: > 发一个请求,就要等待服务器的响应结束,然后才能发第二个请求!中间这段时间就是一个字"