我的理解是SiteMesh作为Servlet过滤器集成到了应用程序中。默认情况下,仅针对原始传入请求(在您的情况下为对Servlet的请求)调用Servlet筛选器。随后的转发或包含请求不会通过过滤器传递,因此不会通过sitemesh传递。
但是,您可以使用以下命令指示要向前调用过滤器:
<filter-mapping> <filter-name>sitemesh</filter-name> <servlet-name>MyServlet</servlet-name> <dispatcher>FORWARD</dispatcher></filter-mapping>
它指示容器仅对FORWARD请求进行操作。其他选项包括INCLUDE和REQUEST,您可以具有多个元素。
因此,您的选择是更改过滤器配置以指定FORWARD,或者更改过滤器映射以匹配servlet路径而不是JSP路径。任一个应该起作用。



