【发布时间】:2013-12-07 12:52:27
【问题描述】:
我正在尝试遵循 headfirst jsp 和 servlets 书籍,但遇到了以下错误。 HTTP 状态 404 - /Beer/form.html
我的文件夹组织如下
tomcat -> webapps -> Beer -> form.html
在 Beer 文件夹中,我还有另一个文件夹 WEB-INF,其中包含 web.xml 文件。
首先我想也许我的 tomcat 根本不工作,所以我使用我以前做过的 servlet 对其进行了测试。有效。
我重新启动了网络服务器,但仍然出现此错误。 我正在运行 Windows tomcat 7.0.47。
这是我的 web.xml 文件:
<servlet>
<servlet-name>Beer Expert Project</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Beer Expert Project<servlet-name>
<url-pattern>/beer.do</url-pattern>
</servlet-mapping>
我输入的网址是
http://localhost:8080/Beer/form.html
我知道有一个类似的问题 I cannot deploy a basic html file in apache tomcat
但是,该问题接受的答案对我没有任何作用。关闭 Web 服务器确实会使页面消失。我检查了它是大写字母等......
另外启动tomcat时弹出的窗口也没有任何警告和错误。
【问题讨论】:
-
tomcat doesn't have any warnings nor errors.你能在日志中看到 Beer 应用程序是否真的被加载了吗? -
如果您的 web.xml 文件中只有这些,那么它显然是无效的。它甚至都不是很好的格式。
-
@JBNizet 除非有些东西他们没有在书中展示,否则我不确定这个 web.xml 文件是如何为他们工作的
-
它没有。这本书可能只显示了 web.xml 文件的相关部分,而不是整个文件。下面是一个完整的 web.xml 文件示例:tutorials.jenkov.com/java-servlets/web-xml.html。虽然这是一个旧教程,但您应该使用 3.0/3_0 而不是 2.3/3_0。如果您使用较新的书籍或教程,您会了解到您甚至不再需要 web.xml 文件来声明和映射 servlet。如今,这是通过注释完成的。
-
@JBNizet 可能是他们向我隐藏了代码,但我认为是我在 servlet-name 之前漏掉了一个斜杠。