• 案例7-用户名异步校验


    1 register.jsp代码

    <script type="text/javascript">
        $(function(){
            
            //为输入框绑定事件
            $("#username").blur(function(){
                //1、失去焦点获得输入框的内容
                var usernameInput = $(this).val();
                //2、去服务端校验该用户名是否存在---ajax
                $.post(
                    "${pageContext.request.contextPath}/checkUsername",
                    {"username":usernameInput},
                    function(data){
                        var isExist = data.isExist;
                        //3、根据返回的isExist动态的显示信息
                        var usernameInfo = "";
                        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 {
    
        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();
            }
            //isExist是Boolean形的,所以不用加引号。
    //如果写回去的是一个String类型格式如下
    //"{"namet":""+name+""}" response.getWriter().write(
    "{"isExist":"+isExist+"}"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

    3 service层

    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;
        }
    
    }
  • 相关阅读:
    终端移植
    优化工具库
    Linux环境下修改MySQL数据库存储引擎
    Too many open files故障解决一例
    MySQL故障处理一例_Another MySQL daemon already running with the same unix socket
    设置VMWare虚拟机使拷贝虚拟机后固定原有的IP地址
    Eclipse安装TestNG插件
    Node“getTextContent() is undefined for the type Node”处理办法
    使用Oracle SQL Developer迁移MySQL至Oracle数据库
    RHEL5.6环境下yum安装MySQL
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8401696.html
Copyright © 2020-2023  润新知