首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat6 + Ubuntu + Servlet

Tomcat6 + Ubuntu + Servlet
EN

Stack Overflow用户
提问于 2009-11-18 09:05:00
回答 2查看 4.5K关注 0票数 0

我正在尝试制作servlet。

我已经在ubuntu上安装了带有管理示例和文档的tomcat6。我能够运行所提供的示例。但是,当我尝试制作自己的servlet时,它并不起作用。

我完成了以下步骤

在我创建文件夹的根目录下

代码语言:javascript
复制
-ROOT
----myapp
------WEB-INF
---------classes

第二个是.java文件。我编译了.java文件,.class就完成了。所以现在的树看起来像

代码语言:javascript
复制
-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。但是这个问题仍然存在。

EN

回答 2

Stack Overflow用户

发布于 2009-11-18 09:10:20

您需要在WEB-INF目录中创建一个web.xml,并在web.xml中定义servlet映射,以便将myapp/TestServ URL转发到TestServ servlet类。

Here是一个描述web.xml的页面,其中包含您需要设置的示例和元素。对于您的类,这些元素可能如下所示:

代码语言:javascript
复制
<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> 
票数 6
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1752965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档