将两个不同的servlet映射到相同的URL模式

kai*_* ho 10 java web.xml servlets

我遇到了其他人编写的J2EE项目.当我来到时web.xml,有两个不同的servlet映射在相同的URL模式上.我想知道这种方法的目的.这究竟是如何工作的以及它的用途是什么?

以下是相关部分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>  
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 13

只有一个servlet会被调用; 我没有意识到使用两个servlet处理单个请求的机制(我也不确定这甚至意味着什么).

Servlet URL模式可能重叠,但有两个具有完全相同的URL是没有意义的.我不记得servlet规范是否明确禁止它,但匹配在第一次匹配时停止.匹配方法在规范中定义.

Servlet 2.4规范PDF请参见p.85+