11-9唐兆文
过滤器&监听器
编写一个Servlet,路径为/captcha
创建一个类实现过滤器接口javax.servlet.Filter
xml方式或者注解方式配置
在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方法
评论留言