java过滤器的实现代码,java 过滤

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: