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

时间:2011-10-25 06:55:45

标签: java servlets web.xml

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

以下是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>  

1 个答案:

答案 0 :(得分:13)

只会调用一个servlet;没有机制我知道用两个servlet处理一个请求(我也不确定这甚至意味着什么)。

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

Servlet 2.4 spec PDF请参见第85 +