详细内容
Filter也被称为过滤器,是servlet技术中最令人兴奋的技术之一,WEB开发人员通过Filter技术,将WEB服务器管理的所有WEB文件,包括Jsp、servlet、静止图像文件和静态html文件实现高级功能,例如URL级别的访问控制、敏感术语过滤和响应信息压缩。
那么它是怎么实现的呢?
为过滤器创建类以实现过滤器接口
实现接口中尚未实现的方法(重点实现doFilter方法) ) ) ) )。
在web.xml中设置。 主要配置过滤哪些资源)
它是怎么工作的?
Filter接口具有doFilter方法。 创建Filter并设置要阻止的web资源后,web服务器在每次调用web资源的service方法时都会调用Filter的doFilter方法。 因此,
在此方法中编写代码时,可以执行以下操作:
在调用目标资源之前,让代码运行。
是否调用目标资源,即用户是否可以访问web资源。
调用目标资源后,让代码执行。
web服务器在调用doFilter方法时传递filterChain对象。 过滤器通道对象是过滤器界面中最重要的对象,也是
do过滤器方法。 开发人员可以根据需要决定是否调用此方法。 调用方法时,web服务器将调用web资源的service方法。 这意味着web资源将被访问,否则web资源将不会被访问。
示例过滤器: import java.io.IOException;
导入javax.servlet.filter;
导入javax.servlet.filter chain;
导入javax.servlet.filter config;
导入javax.servlet.servlet exception;
导入javax.servlet.servlet request;
导入javax.servlet.servlet response;
//*
* @author sddxlz
* @描述过滤器的工作原理
*/
publicclassfiltertestimplementsfilter {
公共语音目录
system.out.println(----filter销毁----) );
}
publicvoiddofilter (servletrequestrequest,servlet响应响应,过滤器通道过滤器通道) throws IOException,servlet excexception
对请求、响应进行一些预处理
request.setcharacterencoding (utf-8 );
response.setcharacterencoding (utf-8 );
response.set content type (' text/html; charset=UTF-8 ';
在调用system.out.println (-----service之前运行代码--- ';
filter chain.do filter (请求,响应; //运行和释放目标资源
调用system.out.println (-----service,然后执行代码----';
}
公共void init (过滤器配置G0 ) throws ServletException {
system.out.println(----filter初始化----' );
}
}
如何在web. xml中配置过滤器? XML版本=' 1.0 '编码=' utf-8 '?
xmlns=' http://Java.sun.com/XML/ns/javaee '
xmlns 3360 xsi=' http://www.w3.org/2001/XML架构-instance '
xsi :方案位置=' http://Java.sun.com/XML/ns/javaee
3358 Java.sun.com/XML/ns/javaee/we B- app _3_0. xsd '
index.jsp
过滤器测试
com.sddxlz.filter.FilterTest
过滤器测试
/*