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

Java-Servlet 404错误[重复]

江飞白
2023-03-14

我是servlet编程的新手。

下面是我的示例servlet代码

sample.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-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>
<!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/

当我单击login时,会出现如下错误,

HTTP状态404-/示例/欢迎

留言/示例/欢迎

描述请求的资源不可用。

Apache Tomcat/7.0.62

截图

为什么我会犯这样的错误?

其他细节

我试过这些,

  1. 尝试运行servlet时获取HTTP状态404错误

结果

请让我知道如果我需要张贴任何更多的细节。

IDE中的目录结构

共有1个答案

袁玮
2023-03-14

您的代码在Tomcat7和Eclipse中确实适用。可能您的index.html与您发布的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,并在没有Eclipse的情况下直接部署在tomcat中。
  • 清理/生成项目
  • 如果您不仔细检查这些文件夹中的权限,那么在Servers/server.xml下的包资源管理器中应该有一个声明的上下文,例如 。重新添加您的tomcat7服务器。
 类似资料:
  • 这是我代码的第一部分: 编译后,它告诉我行(和)上的“预期”:双f(双x){ 我做错了什么?我是java新手,如果还有其他重大错误,我很抱歉。我试图使用一个函数f(x),我相信它是按照我所展示的方式编写的,但我一直得到同样的错误。

  • 我在Java方面有个问题。我正在制作一个程序来检查给定的文本是否有回文。我99%确定我的代码是正确的,但我不能得到一个好的结果。这是代码。 例如,我输入: 为什么是假的/

  • 我有这段代码来连接服务器和客户端,我需要将json对象发送到android studio客户端,但是printwriter行中描述的方法有错误,我不知道问题出在哪里,请查看代码并帮助我 还有这个 错误是 我在通过套接字将数据写入客户端时出错,错误在getOutputStream中

  • 我已经将我的android studio更新为2.2.1,现在我在android studio的消息部分收到错误消息 错误: Java语言lang.NullPointerException(无错误消息) 这是我的android studio的屏幕截图: 帮我看看现在该怎么办。

  • 尝试学习Spring-Boot,并提高我的Java技能。我一直收到错误声明“..java:error:release version 14不受支持..”。我的jdk在preferences页面上设置为jdk-11。我找不到jdk版本设置为14的地方。你知道去哪找吗?我正在使用IntelliJ IDEA Ultimate和最新版本的Kite和Spring-Boot。这里是我的扫描器脚本,用于探索扫描