Java - Servlet 404 错误

标签 java eclipse tomcat servlets

<分区>

我是 servlet 编程的新手。

以下是我的示例 servlet 代码

示例.Java

public class Sample extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        res.setContentType("text/html");  
        PrintWriter pw=res.getWriter();  

        String name=req.getParameter("name");//will return value  
        pw.println("Welcome "+name);  
        pw.close();  
    }
}

Web.xml

<web-app>
<servlet>
<servlet-name>sampleservlet</servlet-name>
<servlet-class>Sample</servlet-class>
<load-on-startup>1</load-on-startup> 
</servlet>
<servlet-mapping>
<servlet-name>sampleservlet</servlet-name>
<url-pattern>/Sample</url-pattern>
</servlet-mapping>
</web-app>

Index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="Sample" method="get">  
Enter your name<input type="text" name="name"><br>  
<input type="submit" value="login">  
</form>  
</body>
</html>

我的问题

当我右键单击我的项目然后单击 Run as -> Run on server 时,我选择服务器,它要求我选择一个服务器,然后我选择要运行的服务器。在 Eclipse 窗口中打开一个浏览器窗口,其地址 URL 为 http://localhost:8080/Sample/

enter image description here

当我点击 login 时,它给我这样的错误,

HTTP 状态 404 -/Sample/welcome


类型状态报告

留言/示例/欢迎

描述请求的资源不可用。


Apache Tomcat/7.0.62

截图

enter image description here

为什么我会收到这样的错误?

其他细节

服务器:apache-tomcat-7.0.62 IDE:Eclipse Java EE 开普勒

我尝试解决问题的步骤

我试过这些,

  1. Getting HTTP Status 404 error when trying to run servlet

结果

我没有在 WEB-INF 文件夹中看到 .class 文件。

  1. Tomcat giving 404 error with servlets

结果 在此路径“tomcat7\work\Catalina\localhost\your app”中,work 文件夹为空。

如果我需要发布更多详细信息,请告诉我。

来自 IDE 的目录结构

enter image description here

最佳答案

您的代码在 tomcat 7 和 eclipse 中对我有用。 也许您的 index.html 与您发布的那个不一样,因为它的目标是 Sample/welcome 而不是 Sample/Sample。

提示:

  • 确保您发布的 index.html 版本与代码中的版本相同。修改内容并确保其正确发布。
  • 加载http://localhost:8080/Sample/Sample?name=Random直接在浏览器中查看 servlet 是否正常工作。
  • 双击服务器上的 Tomcat7。转到您的服务器路径。例如C:\Java\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\Sample\WEB-INF\classes(你的示例类应该在那里)仔细检查你是否有这些文件夹的权限。
  • 将您的项目导出为 WAR 并将其直接部署到您的 tomcat 中没有 eclipse 。
  • 清理/构建您的项目
  • 在 Servers/server.xml 下的 Package Explorer 上,您应该有一个已声明的上下文,例如<Context docBase="Sample" path="/Sample" reloadable="false" source="org.eclipse.jst.jee.server:Sample"/></Host> 如果您不仔细检查这些文件夹中的权限。重新从头开始添加您的 tomcat7 服务器。

enter image description here

关于Java - Servlet 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866782/

相关文章:

java - Linux OOM Killer 和 Java 进程

java - JSF/RichFaces - 如何以编程方式从 HtmlAjaxSupport 调用 ActionEvent (a4j :support)

java - Spring Boot中使用微服务Jar文件部署时访问网络目录上的外部文件

java - 从 HSQLDB 获取架构的最简单方法

java - 使用 eclipse 导出模块 B 并包含另一个模块 A 时未找到模块

java - Eclipse中这些不同的执行环境是什么意思呢?

java - 选择具有多个选项的覆盖方法java

Java程序无法作为Java应用程序运行

tomcat - 在 Tomcat 中进行 birt 部署的问题

java - 许多 Webapp 项目的 JSF Webapp 模板