2011-06-13 42 views
0

我有一个jsp页面,其中包括一个jsp页面,通过jsp:include。 现在的问题是包含的jsp的请求是否通过过滤器? 以下是在web.xml可以jsp:包含页面通过过滤器

<filter-mapping> 
    <filter-name>XYZFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>INCLUDE</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

我的过滤器映射但这似乎没有工作。该过滤器不会被包含的jsp调用。 我在做什么错误或是否有可能?

回答

0

这应该工作。您的过滤器映射中的<dispatcher>INCLUDE</dispatcher>表示还包含包含调度的过滤器。

调试你的代码,在其他地方出错了。

2

在Servlet 2.4中引入了<dispatcher>支持。所以当它不起作用的时候,这可能意味着你正在一个过时的Servlet 2.3容器(例如Tomcat 5.0)上运行你的webapp,或者你的web.xml被声明为按照Servlet 2.3 DTD或者没有特定版本的声明所有这些都会迫使容器回退到最低兼容性模式。

请确保您的web.xml声明符合目标运行时支持的最大Servlet API版本。当你的目标运行时是例如Tomcat 6.0,它是一个Servlet 2.5容器,那么你应该声明符合Servlet 2.5的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 

    <!-- Your config here --> 
</web-app>