过滤器(服务器端的组件)
(本文属性小编笔记,图片资源来源于网上)
一、生命周期
二、多过滤器工作原理
三、过滤器的使用
(1)创建过滤器(Filter):创建一个Class实现Servlet.Filter接口
(2)过滤器配置
方法一(配置web.xml文件):
<filter>
<filter-name><span style="background-color: rgb(51, 204, 255);">过滤器名</span></filter-name>
<filter-class><span style="color:#000000;background-color: rgb(51, 204, 255);">过滤器类</span></filter-class>
</filter>
<filter-mapping>
<filter-name><span style="background-color: rgb(102, 204, 204);">过滤器名</span></filter-name>
<url-pattern><span style="background-color: rgb(102, 204, 204);">要过滤的路径</span></url-pattern>
<dispatcher><span style="background-color: rgb(102, 204, 204);">过滤的规则(包括REQUEST,FORWARD,INCLUDE,ERROR,ASYNC(</span><span style="color:#ff0000;"><span style="background-color: rgb(102, 204, 204);">在servlet3.0才有</span></span><span style="background-color: rgb(102, 204, 204);">))</span></dispatcher>
</filter-mapping>
方法二(通过@webFiter注解在servlet3.0才有):
@WebFilter(servletNames={"servlet名"},filterName="myFilter",...(其他属性));
四、过滤的规则
(1)REQUEST
在访问相应的URL(在url-pattern配置的)界面时候(一次request),执行过滤器。若在做dofilter()时候,有请求转发的时候,不会再次执行过滤器;
(2)FORWARD
在通过getRequestDispatcher().forward()跳转页面时候,会调用。或者
<jsp:forward page="访问的url"></jsp:forward>
(3)INCLUDE
在include指令中:
<jsp:include page="包含的url"></jsp:include>
(4)ERROR
在访问的页面有错误时候,对错误进行捕捉。
<error-page>
<error-code>404</error-code>
<location>对错误处理后跳转的页面</location>
</error-page>
<filter-mapping>
<dispatcher>对错误处理后跳转的页面</dispatcher> //对页面错误进行捕捉,在dofilter()作处理有,显示该页面。
<pre class="html" name="code"> </filter-mapping>