当前位置: 移动技术网 > IT编程>移动开发>Android > Filter过滤器和Listener监听器详解

Filter过滤器和Listener监听器详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

纳米蛊,dnf晦气缠身,囡囝好

 filter过滤器和listener监听器详解

filter过滤器

filter的简介

对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查。

filter的使用

编写一个类,继承并实现javax.servlet.filter。

package com.jyh.filter;
  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;


  public class filterdemo1 implements filter {

    private filterconfig filterconfig;

    public filterdemo1(){
      system.out.println("实例化了");
    }

    //初始化
    @override
    public void init(filterconfig filterconfig) throws servletexception {
      //通过这个获取过滤器在web.xml里面的配置信息
      this.filterconfig = filterconfig;
      system.out.println("过滤器初始化了");
    }

    //执行
    @override
    public void dofilter(servletrequest req, servletresponse res,
        filterchain chain) throws ioexception, servletexception {

      //获取在web.xml中本过滤器配置的名为encoding的参数
      string encoding = filterconfig.getinitparameter("encoding");
      if(encoding == null){
        encoding = "utf-8";
      }
      //设置编码格式
      req.setcharacterencoding(encoding);
      res.setcontenttype("text/html;charset=" + encoding);
      system.out.println("过滤前");
      //放行
      chain.dofilter(req, res);
      system.out.println("过滤后");
    }

    //销毁
    @override
    public void destroy() {
      system.out.println("过滤器销毁了");
    }

  }

在web.xml中配置filter

<filter>
  <filter-name>filterdemo1</filter-name>
  <filter-class>com.jyh.filter.filterdemo1</filter-class>
  <!-- 配置参数 -->
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>filterdemo1</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

过滤器是用来对访问进去过滤的,所以需要在请求前做什么和请求之后做什么都可以用过滤器来做,例如编码的设置,自动登录等。串联过滤器什么的听着就知道是什么情况了。

listener监听器

编写一个类继承实现以下监听器接口。

监听servletcontext、httpsession、servletrequest对象的创建和销毁的监听器

servletcontextlistener: 
httpsessionlistener: 
serlvetrequestlistener:

监听servletcontext、httpsession、servletrequest属性(attributes)变化的监听器

servletcontextattributelistener 
httpsessionattributelistener 
serlvetrequestattributelistener

1.感知型监听器:不需要注册。

httpsessionbindinglistener:实现该接口的类的实例,能够感知自己何时被放到了httpsession域范围中,和何时从httpsession域范围中删除。

httpsessionactivationlistener:实现该接口的类的实例,能够感知自己何时随着httpsession钝化和激活。

在web.xml配置一下

<listener>
   <!-- 指向自己缩写的监听器类 -->
  <listener-class>com.jyh.listener.mycontextlistener</listener-class>
 </listener>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网