Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 我无法在ApacheTomcat中部署基本html文件_Jsp_Tomcat_Servlets - Fatal编程技术网

Jsp 我无法在ApacheTomcat中部署基本html文件

Jsp 我无法在ApacheTomcat中部署基本html文件,jsp,tomcat,servlets,Jsp,Tomcat,Servlets,我正在做一个小网站作为我的第一个项目。我已经决定使用Javaservlet和JSP来编写服务器端脚本。我从O'Reilly的HeadFirst servlet和JSP学习它。我决定使用ApacheTomcat作为我的web服务器和容器。我下载了它。我甚至有JDK1.6更新21。 我用C语言解压了apache: 当我在浏览器中键入时,它正在成功运行,因为我获得了默认的Tomcat主页 在第三章中有一个叫做啤酒的小项目。 所以我试着去做。 我在webappsC:\apache-tomcat-7.0.

我正在做一个小网站作为我的第一个项目。我已经决定使用Javaservlet和JSP来编写服务器端脚本。我从O'Reilly的HeadFirst servlet和JSP学习它。我决定使用ApacheTomcat作为我的web服务器和容器。我下载了它。我甚至有JDK1.6更新21。 我用C语言解压了apache: 当我在浏览器中键入时,它正在成功运行,因为我获得了默认的Tomcat主页

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

HTTP Status 404-/beer/form.html

类型状态报告

消息/beer/form.html

描述请求的资源 (/beer/form.html)不可用

ApacheTomcat/7.0.0

我甚至尝试过使用Tomcat6,但是没有用


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

嗯,我只计划制作一个servlet(最初)…我制作的html文件中的表单(action=“…”)中提到的那个servlet。。。。 所以我想在部署servlet之前检查基本的html文件…顺便说一句…如果我必须在DD中也包含html文件,那么我应该在u给出的xml代码中写什么来代替ServletName? 下面是我的web.xml的内容(我按照你说的修改了它……但不知道用Servlet名称写什么)


html页面
形式
html页面
/beer/form.html
甲烷啤酒
com.example.web.BeerSelect
甲烷啤酒
/选择啤酒

几乎可以肯定,问题出在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
将拦截以
开头的url上的任何请求http://localhost:8080/beer/


顺便说一句,如果您想知道:状态代码HTTP 404意味着找不到url指向的文件


有关HTTP状态代码的更多信息,请参阅。

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

对不起,这个答案完全错误。一个新的文件夹根本不需要另一个servlet,我没有这么说。只是陈述一种可能性,这仍然是错误的。首先,他的“应用程序”没有使用任何servlet。另一方面,
url模式
只有在应用程序名之后才起作用,默认情况下,应用程序名的映射不是由
web.xml
控制的。我不明白你的问题。我将
url模式
更改为
/*
,如果这正是你大惊小怪的原因的话。OP是根据O'Reilly的教程编写的。谁说它是空的?我检查了很多次我的网址。。。我还关闭了服务器6.0和7.0,然后只关闭了1。。。但问题仍然存在…即使主页加载正常。。我很困惑,我遇到了问题。。。你是对的。。。。我在命名我的文件时犯了一个很糟糕的错误。。。谢谢。。。你的帖子让我一次又一次地检查……我发现了问题
   <servlet-mapping>
      <servlet-name>ServletName</servlet-name>
      <url-pattern>/*</url-pattern>
   </servlet-mapping>