我有一个jsp页面,其中包含一个jsp页面,通过jsp:include。 现在问题是包含jsp的请求是否通过过滤器? 以下是我在web.xml中的过滤器映射
<filter-mapping>
<filter-name>XYZFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
但这似乎不起作用。不会为包含的jsp调用过滤器。 我做错了什么或者根本不可能?
答案 0 :(得分: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容器)时,您应该声明web.xml
符合Servlet 2.5:
<?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>
答案 1 :(得分:0)
这应该有效。您的过滤器映射中的<dispatcher>INCLUDE</dispatcher>
表示还包括包含调度的过滤器。
调试代码,在其他地方出错。