在tomcat上设置servlet

时间:2012-05-19 21:53:34

标签: java tomcat servlets

我非常非常新的Web开发,我试图用java创建一个servlet。我已经想出如何设置一个apache tomcat服务器。现在,服务器具有以下文件结构:

tomcat6:
       -work
            -Catalina
                 -localhost
                       -_
            -catalina.policy
       -webapps
            -ROOT
                 -META-INF
                 -index.html
       -shared
            -classes
       -server
            -classes
       -logs
            -localhost.2012-05-19.log
            -catalina.out
            -catalina.2012-05-19.log
       -conf
            -policy.d
                 -lots of .policy files
            -catalina
                 -localhost
                      -ROOT.xml
            -web.xml
            -tomcat-useres.xml
            -server.xml
            -logging.pproperties
            -context.xml
            -pcatalina.properties
       -common
            -classes

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

我应该把classto放在哪里使它工作?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

中完成的

首先,您需要在web.xml中定义servlet:

<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标记和servlet标记中的servlet-mapping标记中使用相同的字符串。

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

答案 2 :(得分:0)

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

 Apache Tomcat folder --> wep-app folder --> your_web_app_name --> WEB-INF,.html,.jsp 
                                                                      |
                                                                      |--> classes
                                                                      |
                                                                      |--> lib
                                                                      |
                                                                      |--> web.xml (Description Descriptor)