21xrx.com
2024-09-19 09:32:51 Thursday
登录
文章检索 我的文章 写文章
JavaWeb实现MySQL数据库注册登录功能的完整代码
2023-06-15 15:33:00 深夜i     --     --

JavaWeb是一种使用Java语言编写Web应用程序的技术,它包括前端、后端和数据库三个部分。在Web应用程序开发中,数据库连接是必不可少的一步,本文将介绍如何使用JavaWeb实现MySQL数据库的登录注册功能,并提供完整的代码实现。

要想实现数据库登录注册功能,需要先创建数据库和表格。在MySQL数据库中执行下面的SQL命令即可创建一个名为user的表格:

CREATE TABLE user (

 id INT(11) NOT NULL AUTO_INCREMENT,

 username VARCHAR(50) NOT NULL,

 password VARCHAR(20) NOT NULL,

 PRIMARY KEY (id)

);

通过以上SQL命令,成功创建了一个包含id、username和password三个字段的表格,其中id是主键,用于唯一标识每个用户记录。

接下来,我们需要编写Java代码实现登录和注册的功能。具体代码实现可以参考以下的示例:


import java.util.*;

import java.sql.*;

public class DBUtil {

  static {

    try {

      Class.forName("com.mysql.cj.jdbc.Driver");

    } catch (ClassNotFoundException e) {

      e.printStackTrace();

    }

  }

  public static Connection getConnection() throws SQLException {

    return DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useSSL=false",

                      "root", "password");

  }

  public static void close(Statement stmt, Connection conn) {

    if (stmt != null) {

      try {

        stmt.close();

      } catch (SQLException e) {

        e.printStackTrace();

      }

    }

    if (conn != null) {

      try {

        conn.close();

      } catch (SQLException e) {

        e.printStackTrace();

      }

    }

  }

}

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

import java.util.*;

public class LoginServlet extends HttpServlet {

  protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");

    String username = request.getParameter("username");

    String password = request.getParameter("password");

    String sql = "SELECT * FROM user WHERE username='" + username + "' AND password='" + password + "';";

    Connection conn = null;

    Statement stmt = null;

    ResultSet rs = null;

    try {

      conn = DBUtil.getConnection();

      stmt = conn.createStatement();

      rs = stmt.executeQuery(sql);

      if (rs.next()) {

        request.setAttribute("username", username);

        request.getRequestDispatcher("/main.jsp").forward(request,response);

      } else {

        request.getRequestDispatcher("/fail.jsp").forward(request,response);

      }

    } catch (Exception e) {

      e.printStackTrace();

    } finally {

      DBUtil.close(stmt, conn);

    }

  }

}

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

import java.util.*;

public class RegisterServlet extends HttpServlet {

  protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");

    String username = request.getParameter("username");

    String password = request.getParameter("password");

    String sql = "INSERT INTO user (username, password) VALUES ('" + username + "', '" + password + "')";

    Connection conn = null;

    Statement stmt = null;

    try {

      conn = DBUtil.getConnection();

      stmt = conn.createStatement();

      stmt.executeUpdate(sql);

      request.setAttribute("username", username);

      request.getRequestDispatcher("/main.jsp").forward(request,response);

    } catch (Exception e) {

      e.printStackTrace();

    } finally {

      DBUtil.close(stmt, conn);

    }

  }

}

以上代码分别实现了数据库连接、登录和注册三个功能。其中DBUtil类用于创建数据库连接,LoginServlet类用于处理登录请求,RegisterServlet类用于处理注册请求。通过这些代码实现,在浏览器中输入登录或注册的URL,即可完成登录注册流程。

关键词:

1. JavaWeb

2. MySQL

3. 注册登录

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复