首页 > 解决方案 > 关于 HTTP 404 Not Found 的问题

问题描述

我目前正在开发一个使用 Netbeans 和 GlassFish 的中型 Java Web 应用程序。一切都很好,直到我将所有 JSP 文件放入名为 LoginOut 的文件夹中,我创建它来存储所有特定的 JSP 文件以使我的项目简洁。但是在我把所有的JSP文件放到那个文件夹之后,问题就出来了。详细地说,浏览器一直告诉我 HTTP 404 Not Found。我相信这是一个非常常见的错误。我在下面放了相关的截图。顺便说一句,当我将所有 JSP 文件放在 LoginOut 文件夹之外时,我的应用程序工作正常。我不知道错误发生在哪里..(这里是代码)项目文件结构


        public User checkLogin(String email, String password) throws SQLException,
                ClassNotFoundException {
            
            Connection conn = getConnection();
            String sql = "SELECT * FROM users WHERE email = ? and password = ?";
            PreparedStatement st = conn.prepareStatement(sql);
            st.setString(1, email);
            st.setString(2, password);
            ResultSet rs = st.executeQuery();
            
            User user = null;
            
            if (rs.next()) {
                user = new User();
                user.setFullName(rs.getString("fullname"));
                user.setEmail(email);
            }
            
            conn.close();
            return user;
        }

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Login Page</title>
        </head>
        <body>
            <form action="LoginServlet" method="POST">
                Email: <input type="text" name="email" ><br><br>
                Password: <input type="password" name="pass" ><br><br>
                <input type="submit" value="Login" ><br><br>
                <a href="index.jsp">Click here to go back.</a>
            </form>

        </body>
    </html>

    package controller.Servlet;

    import Dao.UserDao.UserDAO;
    import java.io.IOException;
    import java.io.PrintWriter;
    import static java.lang.System.out;
    import java.sql.SQLException;
    import javax.servlet.RequestDispatcher;
    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 model.User.User;

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

        private static final long serialVersionUID = 1L;

        public LoginServlet() {
            super();
        }

        UserDAO userDao = new UserDAO();

        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html");

            String email = request.getParameter("email");
            String password = request.getParameter("pass");

            try {
                User user = userDao.checkLogin(email, password);
                String destPage = "Login.jsp";

                if (user != null) {
                    HttpSession session = request.getSession();
                    session.setAttribute("user", user);
                    destPage = "home.jsp";
                } else {
                    String message = "Invalid email/password";
                    request.setAttribute("message", message);
                }

                RequestDispatcher dispatcher = request.getRequestDispatcher(destPage);
                dispatcher.forward(request, response);

            } catch (SQLException | ClassNotFoundException ex) {
                throw new ServletException(ex);
            }

        }
    }

标签: javamodel-view-controllerpathjava-web-start

解决方案


推荐阅读