2011-10-25 13 views
9

Başkaları tarafından yazılmış bir J2EE projesiyle karşılaştım. web.xml'a geldiğimde, aynı URL modelinde eşlenmiş iki farklı servlet vardır. Bu yaklaşımın amacını merak ediyorum. Bu tam olarak nasıl çalışır ve ne işe yarar? İşte Aynı URL modelinde eşlenen iki farklı servletin olması

web.xml ilgili parçasıdır:

<servlet> 
    <servlet-name>fileDownload</servlet-name> 
    <servlet-class>com.htsoft.core.web.servlet.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownload</servlet-name> 
    <url-pattern>/file-download</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>fileDownLoad</servlet-name> 
    <servlet-class>com.kaiwii.oa.action.system.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownLoad</servlet-name> 
    <url-pattern>/file-downLoad</url-pattern> 
</servlet-mapping> 
+0

xml'nin bölümlerini yapıştırmak iyi olur. – hellectronic

+0

Henüz web.xml içeriğini zaten gönderiyorum. –

+3

Bunlar aynı değil: sunucu özelliği, desen eşleştirmesinin büyük/küçük harfe duyarlı olduğunu belirtir. –

cevap

11

Sadece bir servlet denilen alacak; Tek bir isteği iki servletle ele aldığımı bildiğim bir mekanizma yok (hatta bunun ne anlama geldiğinden emin de değilim).

Servlet URL kalıpları üst üste gelebilir, ancak iki aynı URL'ye sahip olmak anlamlı değildir. Servlet belirtimi açıkça reddediyor, ancak eşleşen ilk eşleşmedeki durur. Eşleştirme yöntemi, spesifikasyonda tanımlanmıştır.

Servlet 2.4 spec PDF Bkz. S. 85 +

+0

Spec oldukça açık, url-desenleri onların oluşum sırayla test edilmelidir, böylece ilk uzun maç tutar. SRV 2.5. – EJP

+0

@EJP Haritalama özellikleri bölümünün yaptığı şey bu muydu? –

+0

Yorumumu değiştirdim, ancak filtre eşleştirmelerini ve güvenlik kısıtlamalarını tartışan parçalar web.xml düzeni hakkında açık; 'i tartışan # 11.1 değil. – EJP

İlgili konular