鱼在海上飞 2018-06-08 07:49 采纳率: 100%
浏览 1368
已采纳

ajax检测用户名是否存在

谁能给代码,我能在我电脑上跑起来效果就采纳。只求能实现,看看流程什么样子的,我用的eclipse,servlet。

  • 写回答

9条回答 默认 最新

  • 邪恶八进制 2018-06-08 09:43
    关注

    直接上图:
    数据库
    存在
    不存在
    项目完整代码:
    项目结构

    首先需要导入MySQL驱动包:mysql-connector-java-5.1.41.jar,下面提供我共享的下载路径:
    链接:https://pan.baidu.com/s/1iDDcATg7xZKApMPw-fbsyA 密码:az5z

    DataBase.java:

     package com.cn.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    
    
    public class DataBase {
        public Connection connection;        
        private static final String driver = "com.mysql.jdbc.Driver";
        private static final String url = "jdbc:mysql://localhost:3306/test";
        private static final String name = "root";
        private static final String pass = "root";
    
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName(driver);// 动态加载mysql驱动
                // 一个Connection代表一个数据库连接
                conn = DriverManager.getConnection(url, name, pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        public static void closeConnection(Connection conn, Statement st, ResultSet rs) {
            try {
                if (rs != null)
                    rs.close();
                if (st != null)
                    st.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    }
    

    TestServlet.java:

     package com.cn.web;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import javax.servlet.ServletConfig;
    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 com.cn.util.DataBase;
    
    @WebServlet("/login.do")
    public class TestServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public TestServlet() {
            super();
        }
    
        public void init(ServletConfig config) throws ServletException {
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();   //获取 out 对象
            String username = request.getParameter("username"); //接受用户名
            Connection conn = DataBase.getConnection();//获取MySQL数据库链接
            String sql = "select count(1) from user where name=?"; //sql语句
            PreparedStatement stmt;
            try {
                stmt = conn.prepareStatement(sql);
                stmt.setString(1, username); //填入参数
                ResultSet rs = stmt.executeQuery();  //执行并用ResultSet接受结果
                while(rs.next()){//遍历结构
                    if (rs.getInt(1) > 0) { //判断用户是否存在,写入 相应的结果以响应请求
                        out.write("error");
                    }else{
                        out.write("success");
                    }
                }
                DataBase.closeConnection(conn, stmt, rs);//最后关闭 数据库连接释放资源
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    

    index.jsp:

     <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTf-8" isELIgnored="false"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <script type="text/javascript" src="jquery.min.js"></script>
    <title>Insert title here</title>
    </head>
    <body>
    <h1>Bugzilla 测试页面</h1>
    
        <p>
            <h3>单击此按钮进行 Bugzilla WebService API 的XMLRPC调用测试:</h3>
            <input type="text" value="" name="username">
            <button onclick="checked()">超级简单的按钮</button>
        <p>
    
        <script type="text/javascript">
            function checked(){
                var name = $("[name='username']").val();
                $.ajax({
                    url     :    "login.do",
                    type    :    "POST",
                    dataType:    "text",
                    data    :    {username : name},
                    success :    function (data){
                        if(data == "error"){
                            alert("用户已存在!");
                        }else if(data == "success"){
                            alert("用户名可以使用!");
                        }
                    },error :   function(){
                        alert("程序异常!");
                    }
                });
            }
        </script>
    </body>
    </html>
    

    web.xml:

    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <display-name>Archetype Created Web Application</display-name>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题