1 转发
<jsp:forword page="1.jsp"/>
此时默认 过滤器只过滤一次,过滤request的那一次。
也就是访问1.jsp的那一次。而Forward并没有经过过滤器。
如果需要两次都过滤,可以在xml中配置
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher> <!-- 过滤Request 也是默认的。 -->
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
2.动态包含
<jsp:include page="1.jsp"></jsp:include>
动态包含,默认也是只过滤REQUEST的一次,而不过滤INCLUDE 如果需要过滤INCLUDE需要配置
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
3 在web.xml中全局配置的errorPage的过滤
普通的使用
<%@page errorPage="1.jsp"%>
其转发过程使用的是forword转发的,配置forword即可。
如果在web.xml中配置的errorPage的话,需要在过滤器中配置如下
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
这样,在web.xml中配置的全局错误信息也能经过过滤器拦截。