Servlets JavaServlet404错误

Servlets JavaServlet404错误,servlets,http-status-code-404,Servlets,Http Status Code 404,我的系统有TomcatSeven,所有文件都在webapps下。文件结构是 webapps/WelcomeForm/web/WelcomeForm.html WEB-INF/WEB.xml lib/classes/hello/HelloWorldServlet.java HelloWorldServlet.class 该web文件夹包含WelcomeForm.html WEB-INF保存WEB.xml文件 lib保存servlet-api.jar和 类包含HelloWorldServlet.ja

我的系统有TomcatSeven,所有文件都在webapps下。文件结构是

webapps/WelcomeForm/web/WelcomeForm.html

WEB-INF/WEB.xml

lib/classes/hello/HelloWorldServlet.java HelloWorldServlet.class

该web文件夹包含WelcomeForm.html

WEB-INF保存WEB.xml文件

lib保存servlet-api.jar和

类包含HelloWorldServlet.java

html文件运行正常,但我无法运行Java文件,因为它返回以下消息:

HTTP Status 404 - /hello

type Status report

message /hello

description The requested resource (/hello) is not available.
文件的代码如下所示:

WelcomeForm.html


欢迎表格
你好,世界
键入您的名字,然后单击提交按钮

web.xml


你好世界
hello.HelloWorldServlet
你好世界
/你好
30
HelloWorldServlet.java

包你好;
导入java.io.IOException;
导入javax.servlet.ServletException;
导入java.io.*;
导入javax.servlet.*;
导入javax.servlet.annotation.*;
导入javax.servlet.http.*;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入java.io.PrintWriter;
公共类HelloWorldServlet扩展了HttpServlet{
public void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
response.setContentType(“text/html”);
doPost(请求、响应);
}
public void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
字符串名称=request.getParameter(“用户名”);
PrintWriter out=response.getWriter();
写出(“你的名字是:”);
打印(姓名);
}    
}

我做错了什么?

检查浏览器URL。您缺少上下文

比方说,您运行的测试是您的上下文路径

所以,调用Servlet时应该是这样的

对你来说,不是这样的

因此,添加cotextpath将解决您的问题

e、 g.
action=“/hello”

或者你可以使用

e、 g.
action=“hello”


因此,当您将“/”添加到
action
时,请始终添加上下文路径。

您是否可以尝试从
lib
目录中删除
servlet api.jar
,并将
action=“/hello”
更改为
action=“hello”
?根据Tomasz的说明,必须删除api jar,如果您不是通过JSTL生成URL,则必须确保它与web应用程序相关。servlet文件是在/WEB-INF/classes还是在/WEB-INF/lib/classes中?因为没有真正的格式,所以你的帖子不清楚。它必须在/WEB-INF/classes(在包层次结构下)中。显然,您在部署时出错了。检查Tomcat服务器日志文件。它指示何时开始部署您的web应用以及失败的原因。