java过滤器的实现代码,java 过滤
如何解决写爬虫IP受阻的问题?立即使用。
Filter,也称为Filter,是Servlet技术中最激动人心的技术之一。web开发者通过过滤技术,拦截web服务器管理的所有WEB资源,如Jsp、Servlet、静态图片文件或静态html文件,从而实现一些特殊的功能。例如,它实现了一些高级功能,如URL级别的访问控制、过滤敏感词、压缩响应信息等。
那么它是如何实现的呢?
编写一个过滤器类来实现过滤器接口。
实现接口中未实现的方法(重点是doFilter方法的实现)
在web.xml中配置(主要是配置过滤哪些资源)
它的工作原理?
过滤器接口中有一个doFilter方法。当我们编写过滤器,配置拦截哪个web资源时,web服务器会先调用过滤器的doFilter方法,再调用WEB资源的service方法。因此,
在该方法内编写代码可达到如下目的:
在调用目标资源之前,让一段代码执行。
是否调用目标资源(即是否让用户访问web资源)。
调用目标资源后,让一段代码执行。
当服务器调用doFilter方法时,它将传入一个filterChain对象。filterChain对象是过滤器接口中最重要的对象,它还提供了一个
DoFilter方法,开发者可以根据需要决定是否调用该方法。当调用这个方法时,web服务器会调用web资源的服务方法,即访问web资源,否则不访问web资源。
过滤器范例:
导入Java . io . io exception;
导入javax . servlet . filter;
导入javax . servlet . filter chain;
导入javax . servlet . filter config;
导入javax . servlet . servlet exception;
导入javax . servlet . servlet request;
导入javax . servlet . servlet response;
/**
* @作者yangcq
* @描述过滤器如何工作
*/
公共类FilterTest实现Filter{
public void destroy() {
system . out . println(-Filter Filter destroyed-);
}
公共void doFilter(ServletRequest请求,ServletResponse响应,FilterChain filterChain)引发IOException,ServletException {
//对请求和响应做一些预处理
request . setcharacterencoding( UTF-8 );
response . setcharacterencoding(“UTF-8”);
response . set content type( text/html;charset=UTF-8 );
System.out.println( -调用服务前执行一段代码-);
filterChain.doFilter(请求,响应);//执行目标资源并释放。
System.out.println( -调用服务后,执行一段代码-);
}
公共void init(FilterConfig arg0)引发ServletException {
System.out.println( - Filter过滤器初始化-);
}
}在web. xml中配置过滤器:
?xml版本=1.0 编码=UTF-8 ?
网络应用版本=3.0
xmlns= http://Java . sun . com/XML/ns/javaee
xmlns:xsi= http://www . w3 . org/2001/XML schema-instance
xsi:schema location= http://Java . sun . com/XML/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
显示名称/显示名称
欢迎文件列表
welcome-fileindex.jsp/welcome-file
/welcome-file-list
!-配置过滤器-
过滤器
过滤器名称过滤器测试/过滤器名称
filter-classcom.yangcq.filter.FilterTest/filter-class
/过滤器
!-映射过滤器-
过滤映射
过滤器名称过滤器测试/过滤器名称
!-“/*”表示拦截所有请求-
url模式/*/url模式
/filter-映射
/web-app以上是如何实现java filter的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。