Java 错误HTTP状态404。请求的资源不可用。[上网本]
我使用带有Tomcat 8.0.37的netbeans进行了一个从华氏到摄氏的转换项目 当我试图运行这个项目时,我遇到了一个问题HTTP Satus 404 My index.htmlJava 错误HTTP状态404。请求的资源不可用。[上网本],java,jakarta-ee,tomcat8,netbeans-8,Java,Jakarta Ee,Tomcat8,Netbeans 8,我使用带有Tomcat 8.0.37的netbeans进行了一个从华氏到摄氏的转换项目 当我试图运行这个项目时,我遇到了一个问题HTTP Satus 404 My index.html <html> <head> </head> <body> <h3>Please enter Fahrenheit temperature:</h3><p> <form action="/conv/test">
<html>
<head>
</head>
<body>
<h3>Please enter Fahrenheit temperature:</h3><p>
<form action="/conv/test">
Temperature(F) : <input type="text" name="temperature"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
请输入华氏温度:
温度(F):
My web.xml
<web-app>
<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>doGetMethod.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
testServlet
doGetMethod.TestServlet
testServlet
/试验
我的TestServlet.java
public class TestServlet extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res) throws javax.servlet.ServletException, java.io.IOException
{
String temperature = req.getParameter("temperature");
DecimalFormat twoDigits = new DecimalFormat("0.00");
try
{
double tempF = Double.parseDouble(temperature);
String tempC = twoDigits.format((tempF -32)*5.0/9.0);
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h3>" + temperature + " Fahrenheit is
converted to " + tempC + " Celsius</h3><p>");
out.println("</body>");
out.println("</html>");
}
catch(Exception e)
{
res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"There was an input error");
}
}
}
公共类TestServlet扩展了HttpServlet
{
public void doGet(HttpServletRequest-req,HttpServletResponse-res)抛出javax.servlet.ServletException,java.io.IOException
{
字符串温度=要求的getParameter(“温度”);
DecimalFormat两位数=新的DecimalFormat(“0.00”);
尝试
{
double tempF=double.parseDouble(温度);
字符串tempC=2位。格式((tempF-32)*5.0/9.0);
PrintWriter out=res.getWriter();
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“+温度+”华氏度为
转换为“+tempC+”摄氏度”;
out.println(“”);
out.println(“”);
}
捕获(例外e)
{
res.sendError(HttpServletResponse.SC_内部_服务器_错误,
“出现输入错误”);
}
}
}
请帮我解决这个问题
很抱歉,我的英语不够完美。您应该访问localhost:8080/contextRoot/index.html上的index.html。与表单关联的操作应该映射到servlet,因此它应该是action=“/test”。web.xml中的servlet类标记应该指定servlet类的全名,例如mypackage.TestServlet。您可以避免使用web.xml,并通过在Servlet类上使用注释来节省一些时间,这里也解释了这一点。另请查看此处的类似示例,您应该访问localhost:8080/contextRoot/index.html上的index.html。与表单关联的操作应该映射到servlet,因此它应该是action=“/test”。web.xml中的servlet类标记应该指定servlet类的全名,例如mypackage.TestServlet。您可以避免使用web.xml,并通过在Servlet类上使用注释来节省一些时间,这里也解释了这一点。另请在此处查看类似的示例是否可以发布用于访问servlet的url。@cody123,以及是否可以发布用于访问servlet的url。@cody123和我还发现了一个示例,其中操作映射到url时没有斜杠:我还发现了一个示例,其中操作映射到url时没有斜杠: