错误404 - 使用tomcat 7的Eclipse中没有所请求的资源

时间:2013-01-17 00:53:18

标签: eclipse tomcat web-applications eclipse-wtp

我正在尝试使用eclipse和tomcat 7运行一个简单的web应用程序。 我是一个带有文本输入的索引html文件和一个调用servlet的提交按钮。

我创建了一个动态Web项目,并将html(index.html)文件放在WebContent文件夹中。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
    <form action="/TestServ" method="get">
        <input type="text" name="input">
        <input type="submit" value="Send it!">
    </form>
</body>
</html>

我在/ Java Rescources / src下有我的软件包com.testing.web 在我的servlet(TestServ.java)看起来喜欢这个:

@WebServlet("/TestServ")
public class TestServ extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServ() {
        super();
        // TODO Auto-generated constructor stub
        System.out.println("AA%WU^SDJI&^R&KU");
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("AA%WU^SDJI&^R&KU");
    }
}

当我选择Run-&gt;在项目服务器上运行时,index.html文件加载就好了。 问题是,当我提交表单时,我得到以下错误页面:

HTTP Status 404 - /TestServ

--------------------------------------------------------------------------------

type Status report

message /TestServ

description The requested resource is not available.


--------------------------------------------------------------------------------

Apache Tomcat/7.0.34

我搜索过并搜索过,但找不到可以帮助我的解决方案。 网络上的大多数答案都指向servlet url映射错误。 请注意,我尝试了其中许多无济于事。

此外,我想补充一点,我的服务器配置为在运行时环境oprtion中使用jdk1.7.0_10。

最后,我不明白为什么eclipse在构建项目时不会在WEB-INF下创建正确的类/结构。

我完全被缓和,任何帮助将不胜感激。 非常感谢你提前!

3 个答案:

答案 0 :(得分:4)

终于找到了问题,和往常一样,这是最简单的事情。

表单中的操作必须如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
    <form action="/TestProj/TestServ" method="get">
        <input type="text" name="input">
        <input type="submit" value="Send it!">
    </form>
</body>
</html>

和url映射如下:

<servlet>
    <servlet-name>TestServ</servlet-name>
    <servlet-class>com.testing.web.TestServ</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServ</servlet-name>
    <url-pattern>/TestServ</url-pattern>
  </servlet-mapping>
坦率地说,我并不完全理解为什么。不应该/ Testproj被认为是应用程序的根目录吗? :/ 总之...

答案 1 :(得分:0)

为了删除404错误,我们必须检查web.xml和您在选项卡中提供的URL。网址应该是这样的  HTTP://&LT; 127.0.0.1:8080&GT; //。如果是webservice应用程序

答案 2 :(得分:0)

您的服务器配置没有任何问题。需要在web.xml文件中进行一些修改。试试吧!

  1. 打开“web.xml”文件。
  2. 在“<display-name>”标记和&amp;之间添加这些标记。 “<welcome-file-list>”标记。

    <servlet> <servlet-name>TestServ</servlet-name> <servlet-class>TestServ</servlet-class> </servlet>

    <servlet-mapping> <servlet-name>TestServ</servlet-name> <url-pattern>/TestServ</url-pattern> </servlet-mapping>

  3. 运行您的项目并在浏览器中输入网址为“http://localhost:8080/TestServ

  4. 希望它能奏效! :)

    P.S。 *您实际上可以在“<servlet-name>”标记之间使用任何名称。但两地的名字必须相同。