2012-01-24 11 views
28

Aynı servleti iki farklı url'de eşlemeliyim. Tüm projemi yönetmek için net 7.0'ları kullandım, bu yüzden web.xml dosyasını değiştirmek için onun dostu arayüzünü kullandım. Ne oluşturulan netbeans şudur:birçok url-patterni

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

Bu, herhangi bir hata yaymadan erkek kedi 5.5 tarafından okunan, ama birincisi göz ardı edilir ise yalnızca ikinci model, çalışıyor.

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

Yani, sorularım: Bu bir ama tomcat

tomcat için doğru yol bu biri olduğu tespit Googling? Hangi sözdizimi diğer kapsayıcıları kabul ediyor?

sayesinde Giuseppe

cevap

39

kullanıyorum ziyade kap ile ilgili bir sorun ediliyor o kap/netbeans Spec Servlet ile ilgisi vardır sanırım. Kişisel net fasulye servlet eşlemesi oluşturmak için spec 2.5 kullanarak ve dolayısıyla sen

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

bu here hakkında daha fazlasını okuyun almak gibi görünüyor. Bu servlet şemanın

Önceki sürümler bütün bu haritalama maddelerinin gereksiz tekrarı ile sonuçlanan birden çok URL'ye eşleştirilmiş bir filtre mapping.For filtrelerde sadece tek URL-desen verir diyor.

+0

Tavsiye ederim Ben, tomcat'ın en eski belirtimi (2.4) kullanıyorsa ve yeni sözdizimini kabul etmiyorsa bir hata vermesi gerektiğini söyleyebilirim. Veya netbeans uyumlu bir web.xml sahip olmak için eski sözdizimini kullanmalıdır. Öyle değil mi? Yeni kapsayıcılar, birçok sunucu-haritalama stanzasıyla eski sözdizimini kabul ediyor mu? – eppesuig

+1

@eppesuig Eminim bunların çoğu geriye dönük olarak uyumludur :) ve XSD 2.5 sunucu özelliği kesinlikle buna izin verir. –

+0

@eppesuig Eğer cevabınızdan memnunsanız, sorunun yanındaki onay işaretini tıklayarak kabul edebilirsiniz ve/veya herhangi bir şekilde size yardımcı olması durumunda cevabı oylayabilirsiniz. Cevapları kabul etmek bu forumda itibarınızı artıracaktır. –

1

Tomcat konteyner destekleyecektir 3 url desenler

  1. tam karakter dizisi
  2. /*
  3. *. ext

/* tek tek için önerilir (yıldız şey anlamına gelir) çerçeve

Birden çok çerçeve kullanırsanız, o zaman .*