0

我对 Web 开发非常陌生,我正在尝试用 java 制作一个 servlet。我已经想出了如何设置一个 apache tomcat 服务器。现在,服务器具有以下文件结构:

Tomcat6:
       -工作
            -卡特琳娜
                 -本地主机
                       -_
            -catalina.policy
       -webapps
            -根
                 -META-INF
                 -index.html
       -共享
            -类
       -服务器
            -类
       -日志
            -localhost.2012-05-19.log
            -catalina.out
            -catalina.2012-05-19.log
       -conf
            -policy.d
                 - 大量 .policy 文件
            -卡特琳娜
                 -本地主机
                      -ROOT.xml
            -web.xml
            -tomcat-useres.xml
            -server.xml
            -logging.pproperties
            -context.xml
            -pcatalina.properties
       -常见的
            -类

我刚刚在 NetBeans 中编辑了一个自动生成的 servlet,并且在 IDE 中它工作正常,但是无论我把它放在我的 tomcat 服务器上的哪个位置,我都会得到 404,或者它只是尝试下载 .class 文件。

我应该把课程放在哪里才能让它发挥作用?

4

3 回答 3

2

您必须构建一个 WAR 文件,然后将 warfile 放入 webapps 目录。

于 2012-05-19T21:56:37.117 回答
1

您需要告诉 tomcat 您的 webapp 有 servlet,哪些类实现了 servlet,以及 servlet 映射到哪些 URL 路径。这是在WEB-INF/web.xml.

首先,您需要在以下位置定义 servlet web.xml

<servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>com.foo.myapp.servlets.HelloWorld</servlet-class>
</servlet>

然后,您需要将 servlet(通过它servlet-name)映射到 URL 路径,也在web.xml

<servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

假设你有 tomcat 在端口 8080 上监听,如果你去

http://your.tomcat.host:8080/webappname/HelloWorld

您将点击 servlet。

请注意,这HelloWorldServlet是任意文本。它可以是任何东西,不必与类名或 URL 路径相关(尽管它与它们相似很有用)。重要的是您在标签和标签中的servlet-name标签中使用相同的字符串。servletservlet-mapping

要编写 servlet,您需要实现Servlet接口。 但是,您很少直接这样做。相反,您(最常见的是)扩展HttpServlet和覆盖一个或多个doXXX()方法。如果您不编写基于 HTTP 的 servlet,您可以扩展GenericServlet并覆盖该service()方法。Servlet API 之外的其他库可能会提供您可以扩展的其他特定于协议的 servlet 基类。

于 2012-05-20T01:06:04.930 回答
0

如果您在没有任何 IDE 的情况下手动执行此操作,那么这就是结构

 Apache Tomcat folder --> wep-app folder --> your_web_app_name --> WEB-INF,.html,.jsp 
                                                                      |
                                                                      |--> classes
                                                                      |
                                                                      |--> lib
                                                                      |
                                                                      |--> web.xml (Description Descriptor)
于 2012-05-19T22:28:13.510 回答