11-9唐兆文

过滤器&监听器

编写一个Servlet,路径为/captcha

创建一个类实现过滤器接口javax.servlet.Filter

xml方式或者注解方式配置过滤器拦截的请求路径(urlPatterns = "/captcha")

在doFilter方法中书写过滤任务

filterChain.doFilter方法放行

过滤器doFilter方法默认拦截请求,如果需要经过过滤器之后,可以继续访问资源,要使用filterChain对象的doFilter方法放行

过滤器我们已经看到了他的执行流程,但是,过滤器只有被创建出来才能执行,因此,我们还要了解过滤器生命周期。它包括了init、doFilter、destroy三个方法

init方法是初始化方法。当过滤器被部署到web服务器时,服务器启动的时候执行一次

只要一个请求符合Filter拦截路径,都会执行doFilter。 果需要让这个请求通过过滤器,继续访问目标资源,一定得调用FilterChain对象的doFilter方法,要不然请求就被过滤器拦截了。FilterChain对象的doFilter方法表示对于请求放行。

过滤器的销毁方法。服务器停止或者将项目从服务器中移除的时候,过滤器销毁,执行一次destory方法。

当服务器启动的时候,过滤器就被初始化了,执行过滤器的init方法

每当一个请求的路径是满足过滤器的配置路径,那么就会执行一次过滤器的doFilter方法

当服务器停止的时候,销毁过滤器,执行过滤器的destory方法

精确匹配只对某一个指定的资源进行过滤

假如需要对项目index.jsp进行过滤,只需要配置过滤器的路径为/index.jsp。

request是默认的拦截方式:浏览器(客户端)发出的请求都会进行拦截。

1.直接从地址栏访问index.jsp,Filter拦截2.重定向到index.jsp,Filter拦截

监听器

使用步骤

.创建一个类实现ServletContextListener接口

.给这个类在xml中配置或者添加注解@WebListener

.实现ServletContextListener的contextInitialized和contextDestroyed方法

标签

评论

this is is footer