简介:本文将指导你如何使用Servlet、JDBC和JSP实现一个简单的登录界面验证。我们将遵循MVC(Model-View-Controller)设计模式,使得代码结构清晰,易于维护。
在实现登录界面验证之前,我们需要先建立一个数据库来存储用户信息。这里我们使用MySQL数据库,创建一个名为users的表,包含id、username和password三个字段。
接下来,我们需要导入必要的库和包。在Java中,我们需要导入java.sql.*包来操作数据库。
首先,我们创建一个Model类,名为UserModel,用于处理与用户信息相关的业务逻辑。在这个类中,我们将编写一个方法来查询数据库中的用户信息。
public class UserModel {public User getUser(String username) {User user = null;try {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=UTF-8","root", "password");PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE username = ?");stmt.setString(1, username);ResultSet rs = stmt.executeQuery();if (rs.next()) {user = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));}rs.close();stmt.close();conn.close();} catch (Exception e) {e.printStackTrace();}return user;}}
接下来是Controller部分,我们将使用Servlet来处理用户请求。在这个Servlet中,我们将调用UserModel中的getUser()方法,并处理返回的用户对象。如果用户存在且密码正确,我们将设置一个session属性来标识用户已登录。
public class LoginServlet extends HttpServlet {private UserModel userModel = new UserModel();protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");User user = userModel.getUser(username);if (user != null && user.getPassword().equals(password)) {HttpSession session = request.getSession();session.setAttribute("username", username);} else {request.setAttribute("error", "用户名或密码错误!");}RequestDispatcher dispatcher = request.getRequestDispatcher("login.jsp");dispatcher.forward(request, response);}}