jQuery的ajax之验证用户名是否被注册

  今天做的是注册时候用jquery的ajax检测用户名是否被注册。

  因为用的是idea,之前一直好用的是eclipse,不太熟悉,遇到了很多的错误,本身是没有难度,但是时间都花在了解决错误上,例如,使用idea,找不到servle路劲等。

  反正费了很大的力气各种测试,还是无果,结果最后是idea配置的问题。

  register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery用户注册验证</title>
    <script src="./js/jquery.min.js"></script>
</head>
<body>
<input type="text"  id="username" placeholder="用户名"/><span id="tip"></span> <br>
    <input type="password" placeholder="密码"/>

</body>
<script>
$().ready(function () {
    $("#username").blur(function () {
        var username = $("#username").val();
        alert(username);
        $.post("MessageServlet?method=register",{"username":username},function (data) {
            $("#tip").empty();
            alert(data);
            //切记传回来的数据需要清楚空格
            if (data.trim()=="true"){
                $("#tip").html("恭喜您,可以使用").css("color","green");
            }else{
                $("#tip").html("用户名已经被注册").css("color","red");
            };
        },"text")
    });
});
</script>
</html>

  MessageServlet.java

package Servlet;

import Service.MessageService;

import java.io.IOException;
import java.sql.SQLException;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;



@WebServlet("/MessageServlet")
public class MessageServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    
    
    /**
     * 方法选择
     */
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");

        if ("register".equals(method)) {
            try {
                register(req, resp);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
    }


    // 登录
    private void register(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException, SQLException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        // 获取数据
        String username = req.getParameter("username");
        String sql = "select * from user where username = '"+username+"'";
        System.out.println(sql);
        System.out.println(username);
        boolean data = MessageService.login(sql);
        resp.getWriter().println(data);
        
    }

}

    MessageService.java

package Service;

import Connect.Connect;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;












//服务层
public class MessageService {
    public static boolean login(String sql) {
        Connection conn = Connect.getConn();
        Statement st = null;
        ResultSet rs = null;
        boolean row = true;
        try {
            st = conn.createStatement();
            rs = st.executeQuery(sql);
            if (rs.next()) {
                row = false;
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        return row;

    }

//    public static List<fcjj> getfcjj(String sql) throws SQLException {
//        // 查询语句的执行结果为一个表格,即多个学生对象的集合,所有可以创建数组列表对象来存储
//        List<fcjj> lst = new ArrayList<fcjj>();
//        // 获取连接对象
//        Connection conn = Connect.getConn();
//        try {
//            // 连接对象conn调用createStatement()方法,创建一个执行SQL语句的对象st
//            Statement st = conn.createStatement();
//            // 执行SQL语句的对象st调用executeQuery()方法,执行查询语句,将查询到的结果返回到一个结果集中
//            ResultSet rs = st.executeQuery(sql);
//            // 遍历结果集对象
//            while (rs.next()) {
//                fcjj mes = new fcjj();
//                mes.setName(rs.getString("name"));
//                mes.setPassword(rs.getString("password"));
//                mes.setAgentaddress(rs.getString("agentaddress"));
//                mes.setPhone(rs.getString("phone"));
//                lst.add(mes);
//            }
//        } catch (Exception e) {
//            System.out.println(e.getMessage());
//        } finally {
//            // 资源使用完之后,如果没有关闭,则需要关闭
//            if (conn != null) {
//                conn.close();
//            }
//        }
//        return lst;
//    }



}

      Connect.java

package Connect;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Connect {
    public static Connection getConn() {
        // 第一步:加载驱动类,如果有异常则抛出异常或者使用try..catch..语句处理
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("驱动类加载成功");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("驱动类加载失败");
            // 这里可能报错:ClassNotFoundException
            // 错误原因:可能是驱动类的名称拼写错误,也可能是jar包没导入
        }

        // 第二步:获取连接对象
        String url = "jdbc:mysql://localhost:3306/zhengji?useSSL=true&serverTimezone=GMT";
        String username = "root";
        String password = "ly0825";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, username, password);
            System.out.println("连接对象获取成功");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("连接对象获取失败");
        }
        // 返回一个连接对象
        return conn;
    }

    public static void close(Connection conn, Statement st, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
                rs = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (st != null) {
            try {
                st.close();
                st = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
                conn = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

  

原文地址:https://www.cnblogs.com/moxihuishou/p/14448941.html