一、案例分析

用Ajax实现异步校验用户名是否存在

1.<input name="username">失去焦点时,使用$.post()将用户名以ajax的方式发送给服务器

2.服务器获取用户名后,并通过用户名查询用户,如果用户存在,返回不可用提示;如果用户名可用,返回可用提示

3.根据服务器响应的json数据,控制提示信息的显示和提交的按钮是否可用

二、搭建环境

步骤1:创建项目,导入页面

用Ajax实现异步校验用户名是否存在

步骤2:导入jar包

用Ajax实现异步校验用户名是否存在

步骤3:复制工具类

用Ajax实现异步校验用户名是否存在

步骤4:数据库及表

用Ajax实现异步校验用户名是否存在

步骤5:编写javabean

用Ajax实现异步校验用户名是否存在

三、服务器端程序

步骤1:编写servlet,获得用户名查询是否存在,并返回json数据

用Ajax实现异步校验用户名是否存在

用Ajax实现异步校验用户名是否存在

步骤2:编写service

用Ajax实现异步校验用户名是否存在

步骤3:编写dao,提供findByName()方法

用Ajax实现异步校验用户名是否存在

四、浏览器JS

步骤1:修改提示信息显示区域

用Ajax实现异步校验用户名是否存在

步骤2:给按钮添加id属性,并设置禁用,使用bootstrap的样式显示禁用效果

用Ajax实现异步校验用户名是否存在

步骤3:编写js,当input失去焦点,发生Ajax,并控制提示信息显示和按钮是否可用

用Ajax实现异步校验用户名是否存在

用Ajax实现异步校验用户名是否存在

 

1.页面代码:

<script type="text/javascript">
    $(function(){
        //为输入框绑定事件
        $("#username").blur(function(){
            //1.失去焦点获得输入框的内容
            var usernameInput = $(this).val();
            //2.去服务器校验该用户名是否存在--ajax
            $.post(
                "${pageContext.request.contextPath}/CheckUsernameServlet",
                {"username":usernameInput},
                function(data){
                    //接收到CheckUsernameServlet返回的值
                    var isExist = data.isExist;
                    //3.根据返回的isExist动态显示
                    var uesrnameInfo = "";
                    if(isExist){//对返回的值进行判断
                        usernameInfo = "该用户名已经存在";
                        $("#usernameInfo").css("color","red");//设置提示文本的显示颜色
                    }else{
                        usernameInfo = "该用户名可以使用";
                        $("#usernameInfo").css("color","green");
                    }
                    //将提示信息写到用户名框后面
                    $("#usernameInfo").html(usernameInfo);
                },
                "json"
            );
        });
    });
</script>

2.web层:
public class CheckUsernameServlet extends HttpServlet {
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取要校验的用户名
        String username = request.getParameter("username");
        //传递数据到service层
        UserService service = new UserService();
        boolean isExist = false;
        try {
            isExist = service.checkUsername(username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        response.getWriter().write("{\"isExist\":"+isExist+"}");
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

3.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;
    }
 
}

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

 

 

相关文章:

  • 2021-06-13
  • 2021-11-17
  • 2022-12-23
  • 2021-05-23
  • 2022-01-10
猜你喜欢
  • 2022-12-23
  • 2021-11-17
  • 2021-10-28
  • 2022-12-23
  • 2021-11-25
  • 2022-12-23
  • 2021-06-06
相关资源
相似解决方案