2013-06-01 36 views
7

ben hemServlet haritalama eğik çizgi

/server/abcDef/1432124/adfadfasdfa 

ve

/server/abcDef/abcd/12345 

değerleri '1432124' ve 'abcd' eşleşen bir servlet deseni haritası çalışıyorum ayrılmış sabit değil ve çok sayıda değer olabilir. Bu yüzden esasen /abcDef/*/* ile eşleşmem gerekiyor - sadece abcDef sabittir.

Bunu haritalamamın bir yolu var mı? Gerçekten aşağıdaki gibi bir şey için arıyorum:

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

cevap

11

Servlet Specification göre, biten URL modelleri "/ *" önceki yoluna tüm istekleri eşleşir. Yani onu yaptıklarını şekilde, sen abcDefServlet almak için aşağıdaki url girmek olurdu: Gerçi yapabilecekleriniz

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

bir servlet haritalama birden URL modelleri eklemektir. Ör:

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

Güncelleme: 1432124 yana

ve abcd sabit değildir değerler, güvenli bir şekilde aşağıdaki eşleme ekleyebilirsiniz:

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

Ve sonra ne olursa olsun değerleri tedavi serverin kendi içinde abcDef'dan sonra gelir. h Aşağıdaki işlevi:

req.getPathInfo() 
+0

yazık i 1.432.124 've 'ABCD' sabit değildir ve değerlerin çok sayıda olabilir sözü. Yani esasen/abcDef/*/* ile eşleşmem gerekiyor - sadece abcDef sabittir. Sorumu çok net olarak düzenleyeceğim. – Sai

+0

@Sai: Tamam. Şimdi cevabı da güncelledim. Lütfen kontrol et. – Cassio

+2

** Güncellenen ** kısmı doğru olanıdır. +1 – informatik01

İlgili konular