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

标签 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>

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

编辑:

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

Servlet

最佳答案

尝试删除 <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>

关于java - servlet 页面调用给出错误 404 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53609618/

相关文章:

jquery - 如何为跨平台Web应用程序实现推送通知服务?

web-applications - 如果应用程序停止, quartz 调度程序将获取下一个调度程序时间

java - 外部化 Spring Security 配置?

c# - 如何确定网络应用程序的上行/下行延迟

java - 在 web-app 目录中创建嵌入式 hsqldb

java - Maven "error in opening zip file"

Java 设置简单代理

java - C# 和 Java 将 DateTime 转换为字节数组时的区别

java - 我们可以 Runtime.getRuntime().exec ("groovy");

Javafx CSS 某些属性不起作用