JavaEE 9.5 案例: 实现用户登录代码

简介

用户登录是大多数网站和应用程序的核心功能之一。本文将介绍如何使用JavaEE 9.5构建一个简单的用户登录系统。我们将使用Java Servlet和JSP来实现用户注册和登录功能。

环境准备

在开始之前,确保你已经安装了以下软件:

  • Java Development Kit (JDK)
  • Eclipse IDE
  • Apache Tomcat服务器

创建Web应用程序

首先,在Eclipse中创建一个新的动态Web项目。在项目创建向导中,选择适当的JDK版本和Tomcat服务器。

创建用户实体类

创建一个名为User的Java类,这将是我们的用户实体。该类将包含用户的用户名和密码属性。

public class User {
    private String username;
    private String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    // Getters and setters
}

创建用户登录Servlet

创建一个名为LoginServlet的Java类,该类将处理用户登录请求。在doPost方法中,我们将检查提交的用户名和密码是否与预定义的用户信息匹配。

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取提交的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 检查用户名和密码是否正确
        if (username.equals("admin") && password.equals("admin123")) {
            // 登录成功,将用户信息保存到Session中
            HttpSession session = request.getSession();
            session.setAttribute("username", username);

            // 重定向到用户主页
            response.sendRedirect("home.jsp");
        } else {
            // 登录失败,返回错误消息给用户
            request.setAttribute("message", "用户名或密码错误");
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }
}

创建用户注册Servlet

创建一个名为RegisterServlet的Java类,该类将处理用户注册请求。在doPost方法中,我们将检查提交的用户名是否已经存在。如果用户名不存在,将创建一个新的User对象,并将其保存到数据库或其他持久层中。

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取提交的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 检查用户名是否已存在
        if (username.equals("admin")) {
            // 用户名已存在,返回错误消息给用户
            request.setAttribute("message", "用户名已存在");
            request.getRequestDispatcher("register.jsp").forward(request, response);
        } else {
            // 创建新用户并保存到数据库中
            User user = new User(username, password);
            // saveUser(user); // 保存用户到数据库

            // 注册成功,将用户信息保存到Session中
            HttpSession session = request.getSession();
            session.setAttribute("username", username);

            // 重定向到用户主页
            response.sendRedirect("home.jsp");
        }
    }
}

创建用户登录和注册页面

创建一个名为login.jsp的JSP文件,该文件包含登录表单。

<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <h2>用户登录</h2>
    <form action="login" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required><br>
        <input type="submit" value="登录">
    </form>
    <p>${message}</p>
</body>
</html>

创建一个名为register.jsp的JSP文件,该文件包含注册表单。

<!DOCTYPE html>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <h2>用户注册</h2>
    <form action="register" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required><br>
        <input type="submit" value="