当前位置: 首页 > 知识库问答 >
问题:

“404:源服务器找不到目标资源的当前表示形式,或者不愿意透露Tomcat中存在的表示形式”

江子石
2023-03-14

当我试图在Tomcat服务器上运行我的web应用程序项目时,我遇到了以下错误。

描述源服务器没有找到目标资源的当前表示形式,或者不愿意透露目标资源的存在。

我真的不知道我下面的代码出了什么问题。我读过关于StackOverflow的类似问题,但我找不到任何可以在我的项目中实现的答案。谢谢你的帮助。

指数jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>$Title$</title>
  </head>
  <body>
    <h1>Hello</h1>
    <ul>
      <li><a href="/register">Register</a></li>
      <li><a href="/login">Login</a></li>
      <li><a href="/panel">Panel</a> </li>
      <li><a href="/logout">Logout</a> </li>
    </ul>
    <c:forEach items="${posts}" var="post">
      <p>
      <h4><c:out value="${post.title} ${post.author}"/><br /></h4>
        <c:out value="${post.text}"/>
        <a href="/post/${post.id}">Read more</a>
      </p>
    </c:forEach>

  </body>
</html>

HomePage.java

import Database.DBAdminConnector; import Database.DBUserConnector;

import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; import java.sql.*; import java.util.ArrayList; import java.util.List;

@WebServlet(name = "HomePage", urlPatterns = "/") public class HomePage extends HttpServlet {
    Statement statement = null;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        DBUserConnector dbConnector = DBUserConnector.INSTANCE;
        Connection connection = dbConnector.getConnection();
        resp.setContentType("text/html");
        try {
            statement = connection.createStatement();
            String getPosts = "SELECT * FROM latest LIMIT 10";
            ResultSet posts = statement.executeQuery(getPosts);

            List<Post> postList = new ArrayList<>();
            while(posts.next()) {
                int id = posts.getInt("id");
                String title = posts.getString("title");
                String author = posts.getString("nickname");
                Date date = posts.getDate("time_created");
                String text = posts.getString("text");
                Post p = new Post(id, title, author, date, text);
                //System.out.println(p);
                postList.add(p);
            }
            req.setAttribute("posts", postList);
            RequestDispatcher view = req.getRequestDispatcher("index.jsp");
            view.forward(req,resp);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    } }

web.xml

<web-app version="3.1"
         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_3_1.xsd"
         metadata-complete="false">


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

    <servlet-mapping>
        <servlet-name>PostPage</servlet-name>
        <url-pattern>/post/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>RegisterPage</servlet-name>
        <url-pattern>/register</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>LoginPage</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>PanelPage</servlet-name>
        <url-pattern>/panel</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>Logout</servlet-name>
        <url-pattern>/logout</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>BackupRestoreDB</servlet-name>
    <url-pattern>/backup</url-pattern>
    </servlet-mapping>
</web-app>

共有1个答案

华建同
2023-03-14

这是整个应用程序服务器的一个常见问题。如果遇到404或其他问题,调试该问题的方法是逐步后退和前进。你应该做的第一件事是查看你的服务器日志,以确保服务器已经正确启动。如果有,你应该尝试创建一个索引。html文件和测试。等等等等。在失败的测试中,您可以后退一步,查看前面步骤中的错误。在一次成功的测试中,你可以向前看下一步是否有效

 类似资料: