簡體   English   中英

在tomcat上設置一個servlet

[英]setting up a servlet on tomcat

我對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中編輯了一個由outo生成的servlet,在IDE中它可以正常工作,但是絕對不重要的是,我將其放在tomcat服務器上的位置,得到了404,或者它只是嘗試下載.class文件。

我應該在哪里上課才能使它起作用?

您必須構建一個WAR文件,然后將warfile放入webapps目錄。

您需要告訴tomcat您的Web應用程序具有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標簽和servlet-mapping標簽中的servlet-name標簽中使用了相同的字符串。

要編寫Servlet,您需要實現Servlet接口。 但是,您很少直接這樣做。 相反,您(最通常)擴展HttpServlet並覆蓋一個或多個doXXX()方法。 如果您不編寫基於HTTP的servlet,則可以擴展GenericServlet並覆蓋service()方法。 Servlet API之外的其他庫可能會提供您可以擴展的其他特定於協議的servlet基類。

如果您是在沒有任何IDE的情況下手動進行操作,則這就是結構

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM