2013-06-01 97 views
7

我試圖映射兩者具有多個(兩個)通配符servlet映射由斜線

/server/abcDef/1432124/adfadfasdfa 

/server/abcDef/abcd/12345 

值「1432124」和「ABCD」是符合Servlet圖案分離不固定,可能是多種價值。所以基本上我需要匹配/abcDef/*/* - 只有abcDef是固定的。

有沒有辦法讓我映射這個?真的,我正在尋找類似如下:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*/*</url-pattern> 
</servlet-mapping> 

回答

11

按照Servlet Specification,結尾的URL模式「/ *」將匹配到前面的路徑的所有請求。 所以,你在做它的方式,你必須輸入以下網址去abcDefServlet:

http://myapp.com/server/abcDef/*/<wildcard> 

你可以做雖然什麼是一個servlet映射添加多個URL模式。例如:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/1432124/*</url-pattern> 
    <url-pattern>/server/abcDef/abcd/*</url-pattern> 
</servlet-mapping> 

更新:

由於1432124abcd是不固定的值,你可以放心地添加以下映射:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*</url-pattern> 
</servlet-mapping> 

然後把任何值那是在abcDef之後的servlet本身,機智小時以下功能:

req.getPathInfo() 
+0

抱歉,我應該提到,「1432124」和「ABCD」是不固定的,並且可以是值的多個。所以基本上我需要匹配/ abcDef/*/* - 只有abcDef被修復。我將編輯我的問題非常清楚。 – Sai

+0

@Sai:好的。我現在也更新了答案。請檢查一下。 – Cassio

+2

**更新**部分是正確的。 +1 – informatik01

相關問題