JSP入门:基于MVC模式的用户登录与网站用户管理

引言

JSP(JavaServer Pages)是基于Java技术的一种动态网页技术,广泛应用于Web开发。其可以与Java Servlet技术结合,非常适合实现MVC(Model-View-Controller)应用架构。本文将通过实现一个简单的用户登录功能,来演示如何使用JSP以及MVC模式进行网站用户管理。

MVC模式概述

MVC模式将应用程序分为三部分: 1. 模型(Model):负责业务逻辑和数据处理。 2. 视图(View):负责数据的展示。 3. 控制器(Controller):协调模型和视图之间的交互。

创建用户管理系统的结构

我们将创建以下基础文件结构: - index.jsp:用户登录视图 - LoginController.java:处理用户登录逻辑的控制器 - User.java:用户模型 - UserDAO.java:用户数据访问对象,用于与数据库交互

1. 用户模型(User.java)

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

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

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }
}

2. 数据访问对象(UserDAO.java)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserDAO {

    private String jdbcURL = "jdbc:mysql://localhost:3306/yourdb";
    private String jdbcUsername = "root";
    private String jdbcPassword = "password";

    public boolean validate(String username, String password) {
        boolean valid = false;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword);
            String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setString(1, username);
            statement.setString(2, password);
            ResultSet resultSet = statement.executeQuery();
            valid = resultSet.next();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return valid;
    }
}

3. 控制器(LoginController.java)

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/LoginController")
public class LoginController extends HttpServlet {

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

        UserDAO userDAO = new UserDAO();
        if (userDAO.validate(username, password)) {
            response.sendRedirect("welcome.jsp");
        } else {
            response.sendRedirect("index.jsp?error=1");
        }
    }
}

4. 登录视图(index.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <h2>用户登录</h2>
    <form action="LoginController" 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>
    <c:if test="${not empty param.error}">
        <p style="color:red">用户名或密码错误!</p>
    </c:if>
</body>
</html>

5. 欢迎页面(welcome.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>欢迎页面</title>
</head>
<body>
    <h2>欢迎,您已成功登录!</h2>
</body>
</html>

总结

通过以上示例,我们建立了一个简单的用户登录系统。本文首先介绍了MVC架构的基本概念,然后实现了用户模型、数据访问对象、控制器和视图。JSP与Servlet的结合使得我们的Web应用具备了良好的结构和可维护性。在真实项目中,可以进一步扩展功能,例如用户注册、密码重置等,以满足更复杂的需求。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部