2010-06-03 22 views
7

Servlet Spec 2.3 için tasarlanmış eski bir web sunucusu ile Servlet Spec 2.4 için yazılmış bir uygulama var.Filtre Eşleştirmesi için Dispatcher

<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>*.action</url-pattern> 
    <dispatcher>REQUEST</dispatcher>  
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

nasıl servlet 2.3 uyumlu olması bu eşleştirmeyi yeniden yazabiliriz: web.xml sözdizimi aşağıdaki gibidir?

cevap

1

Yalnızca < dağıtıcı> etiketlerini kaldırın.

Servlet 2.3 dağıtım programlarını desteklemez. İçermezseniz, herhangi bir fark yaratmaz. Servlet/JSP'yi dahil ettiyseniz, tam olarak davranışı 2.4 olarak almak için filtrelenmemeleri için onları yeniden adlandırmanız gerekir.

9

<dispatcher> girişlerini kaldırabilirsiniz. Servlet 2.3 filtresi varsayılan olarak herşeyi gönderir ve bu sadece tamamdır. Sitemesh, kendi sitesinde bile Servlet 2.3 ile uyumlu olduğunu belirtiyor. Burada their site bir özü verilmiştir:

SiteMesh Servlet Filtre ve bu nedenle Servlet 2.3 şartnamesine uygun bir kabı gerektirir.

+0

Tüm etiketlerini sildiyseniz, sunucu uygulamasında 2.4 filtresinin uygulanıp uygulanmadığından emin değilim. –

+3

@David: 2.4'den beri varsayılan olarak sadece "REQUEST" üzerinde yürütülür. “INCLUDE” ve “FORWARD” için, “” yi kendiniz belirtmelisiniz ("REQUEST" ine ek olarak!). – BalusC

+0

Mükemmel, teşekkürler! –