要实现基于 MySQL + JDBC + JSP 的数据库验证登录界面与登录跳转功能,涉及的技术栈包括 JSP 页面、JDBC 连接数据库、以及 MySQL 数据库存储用户信息。以下是一个简要的指南,帮助你实现这个功能。

一、前期准备

  1. MySQL 数据库:确保你的电脑上已经安装了 MySQL 数据库,创建一个用于存储用户信息的数据库和表。
  2. JDBC 驱动:下载并配置 MySQL 的 JDBC 驱动(mysql-connector-java)。
  3. JSP 容器:使用 Tomcat 或其他 Servlet 容器来部署你的 JSP 项目。

二、创建 MySQL 数据库与表

首先,创建一个数据库和一个用户表,假设数据库名为 user_db,表名为 users。表中包含 id(用户ID),username(用户名),password(密码)等字段。

CREATE DATABASE user_db;

USE user_db;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL
);

-- 插入一些测试数据
INSERT INTO users (username, password) VALUES ('admin', 'admin123');
INSERT INTO users (username, password) VALUES ('user', 'user123');

三、创建登录页面 (login.jsp)

在 JSP 页面中,创建一个表单,让用户输入用户名和密码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login</title>
</head>
<body>
    <h2>Login</h2>
    <form action="loginServlet" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required><br><br>
        
        <label for="password">Password:</label>
        <input type="password" id="password" name="password" required><br><br>
        
        <input type="submit" value="Login">
    </form>
</body>
</html>

四、编写 JDBC 连接类 (DBConnection.java)

为了能够从 Java 中连接 MySQL 数据库,我们需要一个 JDBC 连接类。这个类将提供与数据库的连接功能。

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

public class DBConnection {
    public static Connection getConnection() throws SQLException {
        try {
            // Load the JDBC driver
            Class.forName("com.mysql.cj.jdbc.Driver");
            // Create a connection to the database
            return DriverManager.getConnection("jdbc:mysql://localhost:3306/user_db", "root", "password");
        } catch (ClassNotFoundException | SQLException e) {
            throw new SQLException("Database connection error", e);
        }
    }
}

五、创建登录验证 Servlet (LoginServlet.java)

在登录验证过程中,Servlet 将接收用户提交的用户名和密码,使用 JDBC 查询数据库,并验证用户是否存在。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        try (Connection conn = DBConnection.getConnection()) {
            String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
            try (PreparedStatement stmt = conn.prepareStatement(sql)) {
                stmt.setString(1, username);
                stmt.setString(2, password);
                ResultSet rs = stmt.executeQuery();

                if (rs.next()) {
                    // 登录成功
                    response.sendRedirect("welcome.jsp");
                } else {
                    // 登录失败
                    response.sendRedirect("login.jsp?error=invalid");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
            response.sendRedirect("login.jsp?error=error");
        }
    }
}

六、配置 web.xml 文件

需要在 web.xml 文件中配置 LoginServlet,使其能够被访问。

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
    </servlet-mapping>
</web-app>

七、创建欢迎页面 (welcome.jsp)

成功登录后,跳转到欢迎页面。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome to the system!</h2>
    <p>You have successfully logged in.</p>
</body>
</html>

八、测试登录功能

  1. 启动 Tomcat 服务器。
  2. 在浏览器中访问 http://localhost:8080/your-app-name/login.jsp
  3. 输入正确的用户名和密码(如:admin 和 admin123),如果验证成功,将跳转到 welcome.jsp 页面。如果失败,页面将跳回 login.jsp 并显示错误提示。

九、总结

通过以上步骤,你已经实现了一个简单的基于 MySQL、JDBC 和 JSP 的登录功能。你可以根据需要对功能进行扩展,例如加入用户注册、密码加密存储、登录超时、验证码等安全功能。

如果有其他问题,欢迎继续询问!