过滤器(拦截器)

1.过滤器:请求 、响应都需要处理

2.需要过滤器放行

要想将一个普通的class变为一个具有特定功能的类(过滤器,拦截...),要么继承父类,要么实现接口,要么增加注解

 

过滤器:

实现一个Filter接口

init()、destroy() 原理、执行时机 同Servlet

配置过滤器,类似Servlet

web.xml:

<filter>

             <filter-name> AA</filter-name>

            <filter-class>com.ext.filter.FilterDemo</filter-class>

</filter>

<filter-mapping>

               <filtername>AA</filter-name>

             <url-pattern>/MyServlet</url-parttern>

</filter-mapping>

注解配置:在过滤器类上加:@WebFilter("/FilterServlet")

                在servlet类上加:@WebServlet("/FilterServlet")

                  @WebFilter,@WebServlet两者中的url-pattern保持一致,指向要访问的Servlet

              如果写成@WebFilter("/*"),表示拦截一切请求:每一次访问服务器都会被拒绝

dispatcher请求方式:

REQUEST:拦截HTTP请求

FORWARD:只拦截通过请求转发方式的请求

INCLUDE:只拦截通过request.getRequestDIspather("").include()、通过<jsp:include page=""/>

ERROR:只拦截<error-page>发出的请求

可以配置多个过滤器,哪个mapping在前,就先执行哪个

而使用注解则是根据名字的来判断优先级,可以添加数字来控制执行顺序:filter1,filter2,先执行第一个,再执行第二个

 

上一篇:ITK:轮廓空间对象


下一篇:@WebFilter怎么控制多个filter的执行顺序