我无法在apache tomcat中部署基本的html文件

时间:2010-07-23 10:18:02

标签: jsp tomcat servlets

我正在制作一个小型网站作为我的第一个项目。我已经最终确定将Java Servlets和JSP用于我的服务器端脚本。我是从O'Reilly的HeadFirst Servlets和JSP学习的。我决定使用Apache-Tomcat作为我的Web服务器和容器。我下载了它。我甚至有jdk 1.6更新21。 我在C中解压缩了apache: 它正在成功运行,因为当我在浏览器中输入http://localhost:8080时,我获得了默认的Tomcat主页。

在第3章中有一个名为beer的小项目。 所以我试着去做。 我在webapps C:\apache-tomcat-7.0.0\webapps\beer下创建了一个名为beer的目录。在其中只是检查基础知识我创建了一个名为form.html的html文件。但是当我尝试通过浏览器http://localhost:8080/beer/form.html访问它时,我收到以下错误:

  

HTTP状态404 - /beer/form.html

     

输入状态报告

     

消息/beer/form.html

     

description请求的资源   (/beer/form.html)不可用。

     

Apache Tomcat / 7.0.0

我甚至尝试过使用tomcat 6,但没有用。


感谢您的回复...... 实际上我的疑问是..在这里我试图访问一个不是servlet的.html文件,所以它甚至需要部署描述????

好吧,我计划只制作一个servlet(最初)....我在html文件中以形式(action =“....”)提到的那个... 所以我想在部署servlet之前检查基本的html文件....顺便说一句...如果我还要在DD中包含html文件,那么我应该用xml代码代替ServletName写什么? 这里是我的web.xml的内容(我修改了它,因为你说...但不知道在Servlet名称中写什么)

<?xml version="1.0" encoding="utf-8"?>
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    <servlet>
        <servlet-name>html page</servlet-name>
        <servlet-class>form</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>html page</servlet-name>
      <url-pattern>/beer/form.html</url-pattern>
   </servlet-mapping>


    <servlet>
        <servlet-name>Ch3 Beer</servlet-name>
        <servlet-class>com.example.web.BeerSelect</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Ch3 Beer</servlet-name>
        <url-pattern>/SelectBeer.do</url-pattern>
    </servlet-mapping>
</web-app>

2 个答案:

答案 0 :(得分:2)

问题几乎肯定在你的servlet声明中。

在您的webapp(/webapps/beer/WEB-INF)的 WEB-INF 文件夹中有一个名为 web.xml 的文件。看看你是否能找到它并发布它的内容。

此文件声明servlet将如何映射到请求URL。因此,如果有一个servlet映射到url扩展名/*

   <servlet-mapping>
      <servlet-name>ServletName</servlet-name>
      <url-pattern>/*</url-pattern>
   </servlet-mapping>

您将无法直接访问文件(即/beer/form.html将无法检索form.html),因为servlet ServletName将拦截以{{1}开头的网址上的任何请求}}


顺便说一句,如果您想知道:状态代码http://localhost:8080/beer/表示找不到网址指向的文件。

有关HTTP状态代码的详细信息,请参阅http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error

答案 1 :(得分:0)

它应该工作得很好。可能是URL或文件名中的拼写错误。它也是区分大小写的。 /Beer/beer不同。双击URL。另外,您是否从下载的zip中运行或提取了多个Tomcat实例?您可能将新页面放在错误的页面中和/或运行错误的页面。尝试关闭您认为正在运行的Tomcat实例,并在webbrowser中重新加载主页。如果主页没有消失,那么它就是另一个。