我正在尝试制作servlet。
我已经在ubuntu上安装了带有管理示例和文档的tomcat6。我能够运行所提供的示例。但是,当我尝试制作自己的servlet时,它并不起作用。
我完成了以下步骤
在我创建文件夹的根目录下
-ROOT
----myapp
------WEB-INF
---------classes第二个是.java文件。我编译了.java文件,.class就完成了。所以现在的树看起来像
-ROOT
----myapp
------index.html
------WEB-INF
---------classes
-----------TestServ.java
-----------TestServ.class现在我使用http://localhost:8080/myapp在浏览器中打开它
它会显示带有按钮的index.html页面。但当我点击按钮时,它会显示
错误404:未找到http://localhost:8080/myapp/TestServ !!
我不知道哪里出了问题。我也设置了CATALINA_HOME。但是这个问题仍然存在。
发布于 2009-11-18 09:10:20
您需要在WEB-INF目录中创建一个web.xml,并在web.xml中定义servlet映射,以便将myapp/TestServ URL转发到TestServ servlet类。
Here是一个描述web.xml的页面,其中包含您需要设置的示例和元素。对于您的类,这些元素可能如下所示:
<servlet>
<servlet-name>testServ</servlet-name>
<servlet-class>TestServ</servlet-class>
</servlet>
<servlet-mapping>
<!-- For any URL starting with /content/, the rewriter servlet will be called -->
<servlet-name>testServ</servlet-name>
<url-pattern>/TestServ</url-pattern>
</servlet-mapping> 发布于 2009-11-18 09:23:25
您不应该在ROOT目录下部署任何代码。
默认包中不应该有任何Java类。尝试将您的TestServ.java放入一个包中。
您的部署不应包含任何.java文件。
您必须在web.xml中正确注册您的servlet。包括到特定URL映射。
最好是创建一个名为myapp.war的WAR文件,该文件包含WEB-INF/classes和WEB-INF/lib,并根据您的情况创建一个web.xml。将其放入Tomcat /webapps并启动容器。如果您已经正确注册了servlet,您应该能够通过http://localhost:8080/myapp/TestServ访问它。
我会仔细阅读deployment docs。
https://stackoverflow.com/questions/1752965
复制相似问题