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="