过滤器映射的调度程序

Geo*_*rge 8 java jsp

我有一个为Servlet Spec 2.4编写的应用程序,它有一个专为Servlet Spec 2.3设计的旧网络服务器.web.xml文件具有以下语法:

<filter-mapping> 
    <filter-name>sitemesh</filter-name>  
    <url-pattern>*.action</url-pattern>   
    <dispatcher>REQUEST</dispatcher>    
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 
Run Code Online (Sandbox Code Playgroud)

如何重新编写此映射以符合servlet 2.3?

Bal*_*usC 9

您只需删除<dispatcher>条目即可.默认情况下,Servlet 2.3过滤器会调度所有内容,这样就可以了.Sitemesh甚至在自己的网站上提到它与Servlet 2.3兼容.这是他们网站的摘录:

SiteMesh是一个Servlet过滤器,因此需要一个符合Servlet 2.3规范的容器.

  • @David:从2.4开始它默认只在`REQUEST`上执行.对于`INCLUDE`和`FORWARD`,你必须自己指定`<dispatcher>`(除了`REQUEST`!). (3认同)

ZZ *_*der 1

只需删除 <dispatcher> 标签即可。

Servlet 2.3 不支持调度程序。如果您不包含,则没有任何区别。如果您确实包含了 servlet/JSP,则需要重命名它们,这样它们就不会被过滤以获得与 2.4 完全相同的行为。