java-servlet页面调用给出错误404找不到

时间:2018-12-04 09:30:01

标签: java web-applications

我用Java编写了一个servlet页面,以从MySQL的表中检索记录。然后,我将在JSP页面中调用servlet页面,以在浏览器中显示结果。

MyServlet.java:

@WebServlet(name = "MyServlet")
public class MyServlet extends HttpServlet {

    private Statement statement;




   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   response.setContentType("text/html");

        PrintWriter out=response.getWriter();

 try{
     Class.forName("com.mysql.jdbc.Driver");

     Connection conn = DriverManager.getConnection( "jdbc:mysql://126.32.3.11:3306/test", "root", "root");

     String sql ="Select * from filequeue;";

     statement = conn.createStatement();

     ResultSet resultSet = statement.executeQuery(sql);




String str = "<table border=1><tr><th>UniqueID</th><th>FilePath</th><th>Status</th><th>DateTime</th><th>Error</th></tr>";


     while(resultSet.next()){

       str += "<tr><td>"+ resultSet.getString(1) + "</td><td>" + resultSet.getString(2)+ "</td><td>" +resultSet.getString(3)+ "</td><td>" +resultSet.getString(4)+ "</td><td>" +resultSet.getString(5)+"</td></tr>";
     // display each record

     }
    str+= "</table>";
     out.println(str);
 resultSet.close();
     statement.close();
     conn.close();


 }catch(Exception e){

 System.out.println(e);

 }finally {
     out.close();
 }


    }
}

在我的web.xml中:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">


    <servlet>
        <description></description>
        <display-name>Servlet</display-name>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class> MyServlet</servlet-class>

    </servlet>

    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/Servlet</url-pattern>
    </servlet-mapping>


</web-app>

在我的index.jsp中:

<body>
  <h1>Simple File Queue table</h1>
<a href="MyServlet">View table</a>


  </body>

但是,当我单击“查看表”时,它显示Error: 404 Not found。我不知道为什么,因为它应该在页面中显示记录。我在这里犯错了吗?

编辑:

这是我的文件结构的屏幕截图:

Servlet

1 个答案:

答案 0 :(得分:1)

尝试删除<servlet-class> MyServlet</servlet-class>中的空间,最好从MyServlet类添加一个包。像<servlet-class>org.app.MyServlet</servlet-class>

<url-pattern>/Servlet</url-pattern>表示此servlet的URL是{hostname:port}/Servlet,而不是MyServlet<a href="MyServlet">View table</a>

不要忘记应用程序名称。如果您的项目部署名称为“ myapp”(并且索引页面为{host:port} / myapp),则所有servlet都将拦截以下路径:“ {host:port}/myapp/{url-pattern from servlet-mapping}”。

在web.xml中尝试一下:

<servlet>
    <description></description>
    <display-name>Servlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/servlet</url-pattern>
</servlet-mapping>

index.jsp:

  <body>
    <h1>Simple File Queue table</h1>
    <a href="/{application-name}/servlet">View table</a>
  </body>