1.概述
介绍如何创建一个过滤器,并使用过滤器在打开页面的同时输出信息,此功能是由过滤器处理完成的。
2.技术要点
Serlvet过滤器实现了Filter接口,在Filter接口中定义了以下几个方法:
a. Init().程序启动时调用此方法,用于初始化该Filter。
b. doFilter().客户请求服务器时会经过这里,是具体执行过滤器代码。
c. destroy().程序关闭时调用此方法,用于销毁一些资源。
以上三个方法反映了Filter的生命周期,其中init()和destroy()方法只会被调用一次,分别在web程序加载和卸载的时侯调用,而doFilter()方法每次有客户端请求都会被调用一次。
3.具体实现
(1)创建过滤器类FirstFilter,主要代码如下:
package com.mr; public class FirstFilter implements Filter { private FilterConfig filterConfig; //初始化方法 public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } //具体执行的方法 public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException{ try { System.out.println("客户端的请求经过这里!!!!"); filterChain.doFilter (request, response); System.out.println("帐号和密码请求处理经过这里"); } catch (ServletException e) { System.out.println("客户端请求失败"); }catch(IOException io){ System.out.println("帐号和密码请失败"); } } //销毁过滤器 public void destroy() { this.filterConfig=null; } }
(2)在web.xml中配置过滤器,关键代码如下:
<filter> <filter-name>FirstFilter</filter-name><!--过滤器名称 --> <filter-class>com.mr.FirstFilter</filter-class><!--过滤器的实现类 --> </filter> <filter-mapping> <filter-name>firstFilter</filter-name> <!--映射过滤器名称 --> <url-pattern>/*</url-pattern> <!--使用通配符*什么请求都经过滤器 --> </filter-mapping>
时间: 2024-10-30 20:56:52