软工博客24

一个登录系统:
后端:
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.*;

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

// 数据库配置 - 应该放在配置文件中
private static final String DB_URL = "jdbc:mysql://localhost:3306/gw?serverTimezone=UTC";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "your_password";

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
    
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    
    if(username == null || username.trim().isEmpty() || 
       password == null || password.trim().isEmpty()) {
        request.setAttribute("error", "用户名和密码不能为空");
        request.getRequestDispatcher("index.html").forward(request, response);
        return;
    }
    
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
         PreparedStatement pstmt = conn.prepareStatement(
                 "SELECT user_id, username FROM users WHERE username = ? AND password = ?")) {
        
        pstmt.setString(1, username);
        pstmt.setString(2, password); // 实际应该比较哈希值
        
        try (ResultSet rs = pstmt.executeQuery()) {
            if (rs.next()) {
                // 登录成功,创建会话
                HttpSession session = request.getSession();
                session.setAttribute("user_id", rs.getInt("user_id"));
                session.setAttribute("username", rs.getString("username"));
                
                // 重定向到购物页面
                response.sendRedirect("gouwu.jsp");
            } else {
                // 登录失败
                request.setAttribute("error", "用户名或密码错误");
                request.getRequestDispatcher("index.html").forward(request, response);
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
        request.setAttribute("error", "系统错误,请稍后再试");
        request.getRequestDispatcher("index.html").forward(request, response);
    }
}

}
前端:

石铁大校园购物系统 - 登录
posted @ 2025-04-14 19:04  Thanatos。syts  阅读(6)  评论(0)    收藏  举报