请求的资源在Tomcat 8.0.2中不可用

时间:2015-06-19 16:00:57

标签: java apache servlets tomcat8

wel.html文件

<html>
<head><title>Welcome Page</title></head>
<body>
Welcome HTML Page
<form action="Welcome" method="post">
<input type="submit" value="submit"/>
</form>
</body>
</html>

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>S1</servlet-name>
<servlet-class>Welcome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>S1</servlet-name>
<url-pattern>/Welcome</url-pattern>
</servlet-mapping>
</web-app>

Welcome.java Servlet文件

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

public class Welcome implements Servlet
{
ServletConfig config;

public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
{
System.out.println("...init...");
this.config=config;
}

public javax.servlet.ServletConfig getServletConfig() 
{
System.out.println("...getServletConfig...");
return config;
}

public void service(javax.servlet.ServletRequest req,javax.servlet.ServletResponse res) throws javax.servlet.ServletException,java.io.IOException
{
System.out.println("...service...");
res.setContentType("text/html");
PrintWriter out=res.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Welcome</h1>");
out.println("</body>");
out.println("</html>");
}

public java.lang.String getServletInfo()
{

System.out.println("...getServletInfo...");
return "";
}

public void destroy()
{
System.out.println("...destroy...");
}

}

目录结构 C:\ Apache的Tomcat的8.0.22 \ web应用\ MyApp的\ WEB-INF \类

WEB-INF中的web.xml

在类文件夹中编译java类

wel.html在MyApp文件夹中

当我部署项目时,它正在工作到wel.html.But点击提交按钮后,将显示以下错误页面

HTTP状态404 - / MyApp / Welcome

输入状态报告

message / MyApp / Welcome

说明请求的资源不可用。

Apache Tomcat / 8.0.22

我对导致这个问题的原因感到茫然。请帮助我。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我还复制并粘贴到Netbeans中的新WebApp项目,一切正常。确保你没有拼写错误:

  • 你有没有web.xml,例如web.xml.xml文件?
  • 您是否在WEB-INF \ classes文件夹中有Welcome.class文件?

除此之外,您不能始终如一地使用您的导入。当您在开头调用import时,只需反复使用ServletConfig config而不是javax.servlet.ServletConfig config

答案 1 :(得分:0)

对我来说,Tomcat 8.0.23和Oracle JDK 1.8.0_45似乎很合适,使用帖子中的复制和粘贴代码。猜测你的问题是你的类没有被部署,或者它是默认包以外的地方。尝试将其添加到包中并修改servlet映射以反映限定的类名。