您好,欢迎访问一九零五行业门户网

java过滤器怎么实现

java过滤器的实现步骤:1、编写一个过滤器的类实现filter接口;2、实现接口中尚未实现的方法(着重实现dofilter方法);3、在web.xml中进行配置(主要是配置要对哪些资源进行过滤)即可。
filter也称之为过滤器,它是servlet技术中最激动人心的技术之一,web开发人员通过filter技术,对web服务器管理的所有web资源:例如jsp,servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现url级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
那么它是如何实现的呢?
编写一个过滤器的类实现filter接口
实现接口中尚未实现的方法(着重实现dofilter方法)
在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
它的工作原理?
filter接口中有一个dofilter方法,当我们编写好filter,并配置对哪个web资源进行拦截后,web服务器每次在调用web资源的service方法之前,都会先调用一下filter的dofilter方法,因此,
在该方法内编写代码可达到如下目的:
调用目标资源之前,让一段代码执行。
 是否调用目标资源(即是否让用户访问web资源)。
调用目标资源之后,让一段代码执行。
web服务器在调用dofilter方法时,会传递一个filterchain对象进来,filterchain对象是filter接口中最重要的一个对象,它也提供了一个
dofilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方法,即web资源就会被访问,否则web资源不会被访问。
过滤器范例:
import java.io.ioexception;import javax.servlet.filter;import javax.servlet.filterchain;import javax.servlet.filterconfig;import javax.servlet.servletexception;import javax.servlet.servletrequest;import javax.servlet.servletresponse;/*** @author yangcq* @description 过滤器filter的工作原理*/public class filtertest implements filter{    public void destroy() {        system.out.println(----filter销毁----);    }public void dofilter(servletrequest request, servletresponse response,filterchain filterchain) throws ioexception, servletexception {    // 对request、response进行一些预处理    request.setcharacterencoding(utf-8);    response.setcharacterencoding(utf-8);    response.setcontenttype(text/html;charset=utf-8);    system.out.println(----调用service之前执行一段代码----);    filterchain.dofilter(request, response); // 执行目标资源,放行    system.out.println(----调用service之后执行一段代码----);}    public void init(filterconfig arg0) throws servletexception {        system.out.println(----filter初始化----);    }}
在web. xml中配置过滤器:
<?xml version="1.0" encoding="utf-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  <display-name></display-name>      <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <!--配置过滤器-->  <filter>      <filter-name>filtertest</filter-name>      <filter-class>com.yangcq.filter.filtertest</filter-class>  </filter>  <!--映射过滤器-->  <filter-mapping>      <filter-name>filtertest</filter-name>      <!--“/*”表示拦截所有的请求 -->      <url-pattern>/*</url-pattern>  </filter-mapping></web-app>
以上就是java过滤器怎么实现的详细内容。
其它类似信息

推荐信息