2011-10-25 29 views
9

Tôi đã gặp phải một dự án J2EE được viết bởi những người khác. Khi tôi đến web.xml, có hai servlet khác nhau được ánh xạ trên cùng một mẫu URL. Tôi tự hỏi mục đích của cách tiếp cận này. Làm thế nào chính xác mà làm việc và những gì puspose?Có hai servlet khác nhau được ánh xạ trên cùng một mẫu URL

Dưới đây là phần có liên quan của web.xml:

<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

Để dán các phần của xml sẽ tốt. – hellectronic

+0

tôi đã đăng nội dung web.xml. –

+3

Những thông tin này không giống nhau: thông số kỹ thuật servlet cho biết rằng đối sánh mẫu phân biệt chữ hoa chữ thường. –

Trả lời

11

Chỉ có một servlet sẽ được gọi; không có cơ chế nào tôi biết về việc xử lý một yêu cầu duy nhất với hai servlet (tôi cũng không chắc chắn điều đó có nghĩa là gì).

Mẫu URL Servlet có thể trùng lặp, nhưng có hai mẫu có cùng URL chính xác không có ý nghĩa. Tôi không nhớ nếu đặc tả servlet rõ ràng là không cho phép nó, tuy nhiên các điểm phù hợp dừng lại ở lần khớp đầu tiên. Phương thức khớp được xác định trong spec.

Servlet 2.4 spec PDF Xem p. 85+

+0

Thông số kỹ thuật khá rõ ràng rằng các mẫu url phải được kiểm tra theo thứ tự xuất hiện của chúng, vì vậy, kết quả phù hợp dài nhất đầu tiên sẽ được giữ. SRV 2.5. – EJP

+0

@EJP Tôi nghĩ đó là phần kỹ thuật lập bản đồ đã làm gì? –

+0

Tôi đã sửa đổi nhận xét của mình, nhưng các phần thảo luận về ánh xạ bộ lọc và các ràng buộc bảo mật rõ ràng về thứ tự web.xml; # 11.1 thảo luận về không. – EJP

Các vấn đề liên quan