Servlet:HTTP状态404-找不到

时间:2018-11-17 04:34:14

标签: java servlets netbeans

我的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

1 个答案:

答案 0 :(得分:1)

只需检查代码段,您就有错别字。在那里,您必须将ControlleurSimple更改为ControllerSimple