Servlet:HTTP 状态 404 - 未找到

问题描述 投票:0回答:2

我的 Servlet 根本不工作。我收到 HTTPS 状态 404 - 未找到。以下是相同的完整代码:-

index.jsp

<!DOCTYPE html>
      <html>
          <head>
              <title>Page title</title>
              <meta charset="UTF-8" />
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
         <link href="CSS/cssSheet.css" rel="stylesheet"  type="text/css" />
     </head>
     <body>

         <nav>
             <a href="ControlleurSimple?action=apropos" target="_self">A propos</a>
         </nav>

         <main>
             <h1>Welcome</h1>
             Text here

         </main>
    </body>
 </html>

web.xml

<servlet>
        <servlet-name>ControllerSimple</servlet-name>
        <servlet-class>WebApplication1.ControllerSimple</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ControllerSimple</servlet-name>
        <url-pattern>/ControllerSimple</url-pattern>
    </servlet-mapping>

ControllerSimple.java

package WebApplication1;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ControllerSimple extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ControllerSimple</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet ControllerSimple at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }


    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String action = request.getParameter("action");
String jspPage = "/index.html";
if ((action == null) || (action.length() < 1)) {
 action = "default";
}
if ("apropos".equals(action)) {
 jspPage = "/apropos.jsp";
}
RequestDispatcher rd = request.getRequestDispatcher(jspPage);
rd.forward(request, response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

apropos.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Title</title>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link href="CSS/cssSheet.css" rel="stylesheet"  type="text/css" />

    </head>
    <body>

        <main>
            Text

        </main>
    </body>
</html>

我是 servlet 新手,所以也许我会错过一些东西。当我单击该链接时,出现“HTTP 状态 404 - 未找到”错误。我真的不明白我做错了什么。

我正在使用 NetBeans IDE 8.2 和 GlassFish 4.1.1

java servlets netbeans
2个回答
1
投票

只需检查代码片段,您有一个拼写错误。在那里,您必须将

ControlleurSimple
更改为
ControllerSimple


0
投票

我的 Servlet 根本不工作。我收到 HTTPS 状态 404 - 未找到。

HTTP 状态 404 – 未找到**

输入状态报告

消息请求的资源 [/icehrm_v33.5.0.OS%20(1)/] 不可用。

说明源服务器未找到目标资源的当前表示或不愿意透露该表示存在。

Apache Tomcat/10.1.30

© www.soinside.com 2019 - 2024. All rights reserved.