无法直接运行.jsp页面



我在使用最近出现的日食时遇到问题。当我尝试运行任何.jsp文件时,我得到

404 错误资源不可用。

但是,如果我运行.java文件,我会加载页面。 执行以下 Java 代码 我可以运行页面,但在按下正确的按钮后它仍然不会重定向页面。除了我已经提到的错误消息之外,我没有收到其他错误消息。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    String action = null, address = null;
    address = "/WEB-INF/PhonebookMain.jsp";
    action = (String) request.getParameter("action");
    if(action == null){
        action = "nema";
    }
    if(action == "nema"){       
    }else
    {
        if(action == "Unos"){
            address ="/WEB-INF/Unos.jsp";
        }
        if(action == "Izmjena"){
            address = "/WEB-INF/Izmjena.jsp";
        }
    }
    RequestDispatcher dispatcher = request.getRequestDispatcher(address);
    dispatcher.forward(request, response);
}
}

这不是一个错误,而是一个功能。根据规范,WEB-INF 下的所有资源都无法从外部访问,因为这是您的类、配置等应该保持私有的位置。

人们通常将他们的JSP放在WEB-INF下,正是因为JSP是视图,因此永远不应该直接执行:所有请求都应该首先转到控制器,然后控制器转发到视图。这似乎是你在这里所做的:servlet 是一个调度到视图的控制器。因此,直接执行 JSP 没有多大意义:请求应该首先通过控制器。

url中删除/WEB-INF并使用/something.jsp然后尝试

如果您里面有所有.jsp文件web-inf folder请从那里复制它们并将它们直接粘贴到web-content文件夹下

最新更新