1

好的,这应该是基本的,我之前通过eclipse和weblogic使用过很多次servlet,没有问题。但是对于 Tomcat 6,我遇到了 Servlet 映射问题。

网页.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 

    <description>
      Servlet and JSP Examples.
    </description>
    <display-name>Servlet and JSP Examples</display-name>
    <servlet>
        <servlet-name>HelloWorldExample</servlet-name>
        <servlet-class>HelloWorldExample</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>HelloWorldExample</servlet-name>
        <url-pattern>/HelloWorldExample</url-pattern>
    </servlet-mapping>

</web-app>

我的 web.xml 位于我的 WEB-INF 文件夹中,我的 servlet HelloWorldExample.class 位于 WEB-INF/classes/

它们都位于 tomcat/webapps/ch1/

据我所见,一切都很好,但是经过数小时的反复试验和多次重启后,我仍然得到:

类型状态报告

消息 /ch1/HelloWorldExample

描述 请求的资源不可用。

http://localhost:8080/ch1/HelloWorldExample

目录结构截图

文件夹

如果有人能指出我在哪里犯了错误,我将永远感激:)

4

4 回答 4

2

您应该将文件夹“ch1”放在tomcat/webapps下,而不是 tomcat/webapps/ROOT 下。

遵循以下文件夹结构:

tomcat:
--webapps
----ch1
--------META-INF
--------WEB-INF
----------classes
----------lib
----------web.xml
于 2013-02-20T07:15:09.187 回答
2

您应该构建和导出 WAR 文件并将其部署在 Tomcat 上,然后它将自动放在正确的位置。另外,请注意 web.xml 的这一部分:

<servlet>
    <servlet-name>HelloWorldExample</servlet-name>
    <servlet-class>HelloWorldExample</servlet-class>
</servlet>

Servlet-class 需要是完全限定的类名,即:your.package.classname(如果您使用默认包,请忽略,这通常是一种不好的做法)。当您处理这个问题时,我建议您安装 Tomcat 7 并利用 Servlet 3.0 的优势,即摆脱 web.xml 配置并使用 servlet 注释。更多信息:

于 2013-02-20T07:30:31.343 回答
0

您的ch1文件夹应该在webapps不下webapps/ROOT

于 2013-02-20T07:18:01.377 回答
0

请将 ch1 文件夹移至webappsfromwebapps/ROOT 并记住restart the Tomcat Server在此更改之后

于 2013-02-20T07:42:53.723 回答