【问题标题】:Apache Tomcat error http status 404 [duplicate]Apache Tomcat错误http状态404 [重复]
【发布时间】:2014-09-11 01:11:18
【问题描述】:

说实话,我是一个学习者,这是我的第一个 servlet 程序。 我制作了基本的 servlet 并安装了 tomcat 版本 6 甚至 tomcat 版本 8。 服务器正确启动,我可以看到 tomcat 启动页面

http://localhost:8080

但是在登录到 tomcat 管理器后,当我点击我的文件夹名称时,它给了我一个错误提示

http status 404-/online/(在线是我在webapps中创建的文件夹)

输入状态报告

消息/在线/

说明请求的资源不可用。

这是我的代码

web.xml->(在线文件夹中->WEB-INF)

- <web-app>
- <servlet>
  <servlet-name>FirstServlet</servlet-name> 
  <servlet-class>FirstServlet</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>FirstServlet</servlet-name> 
  <url-pattern>/FirstServlet</url-pattern> 
  </servlet-mapping>
  </web-app>

FirstServlet.java->

import javax.servlet.*;
import java.io.*;

class FirstServelet implements Servlet
{
    public void init(ServletConfig config)
    {

    }

    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
    {
        PrintWriter out;
        out=response.getWriter();
        out.println("hello");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>MY First Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<marquee>ban ja tar pls</marquee>");
        out.println("</body>");
        out.println("</html>");

    }

    public String getServletInfo()
    {
        return null;
    }

    public ServletConfig getServletConfig()
    {
        return null;
    }

    public void destroy ()
    {

    }
}

请解决404错误

【问题讨论】:

  • 你打的是http://localhost:8080/online对吧?
  • extends HttpServlet 创建您自己的 servlet 而不是 implements Servlet

标签: java tomcat servlets http-status-code-404


【解决方案1】:

问题是你没有welcome-file-list,我认为默认页面是index.html,我想它不在你的文件夹中。您可以提供任何 html 或 jsp 文件作为默认文件,但不能提供如下 servlet。

<welcome-file-list>
      <welcome-file>myfile.html</welcome-file>  
</welcome-file-list>  

您可以通过点击http://localhost:8080/online/FirstServlet URL 来访问您的 servlet。

您可以创建一个默认页面,该页面将重定向到 FirstServlet,即

myfile.html

<meta http-equiv="refresh" content="0; url=http://localhost:8080/online/FirstServlet" />

还有 @Braj 在评论中所说的 extend HttpServlet 而不是 implement Servlet

编辑

您的 servlet 名称有误。将 servlet 名称从 FirstServelet 更改为 FirstServlet

【讨论】:

  • 感谢您的支持,但您刚刚提到了欢迎文件列表。这对我来说是一个全新的概念,即使调用 localhost:8080/online/FirstServelet 也无法运行 servlet
  • 更新了我的答案。你的servlet和url中有一个额外的“e”。点击localhost:8080/online/FirstServlet 如果这不起作用,那么按照@Braj 的建议去做。扩展 HttpServlet 而不是实现 Servlet。
猜你喜欢
  • 2021-06-19
  • 2018-05-06
  • 2017-03-28
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 2015-10-11
相关资源
最近更新 更多