2010-11-18 180 views
1
webapps 
| 
|----helloworld 
    | 
    |----WEB-INF 
      | 
      |-----classes-HelloWorldServlet.class 
      |-----lib----servlet-api.jar 
      |-----web.xml 

以上是我的目錄結構。現在在web.xml中,我不知道要在servlet映射的url-pattern中給出什麼。我應該給那裏什麼?哪個是url模式?Servlet映射URL模式

+3

目錄結構與'url-pattern'無關。這是你想要的。 – skaffman 2010-11-18 13:17:27

回答

3

映射servlet的機制與目錄結構無關,正如skaffman指出的那樣。

基本上,你必須在web.xml中兩件事情(關於servlet的):

  • <servlet>標籤,它定義的別名servlet和它的完全限定域名(例如,com.foo.pkg.YourServlet

  • <servlet-mapping>它爲給定別名(取自<servlet>定義)指定url-pattern

顧名思義,url-pattern表示URL部分應該讓servlet被調用。因此,如果將給定的servlet映射到url-pattern /myfirstserlet,那麼當用戶打開http://localhost:8080/helloword/myfirstservlet時,它將被訪問,其中第一部分是主機名和端口,後跟上下文名稱(webapp的名稱),以及那麼url-pattern

注意:您當前正在使用servlet的默認包(即無包)。這是不鼓勵的,所以給它一些包名稱。 (並把它放在WEB-INF/classes/com/foo/pkg/)。這是通過指定package com.foo.pkg;

+0

如果我想要像http:// localhost:8080/helloword/war/myfirstservlet之類的東西,該如何實現? – 2011-04-13 13:25:47

+0

將它映射到'/ war/myfirstservlet',並將其放置在webapps/helloworld – Bozho 2011-04-13 13:39:31

+0

謝謝,但我不認爲我理解,我試過了,請看這個問題http://stackoverflow.com/q/5650136/543544 – 2011-04-13 13:44:20