java基础(二十九):过滤器

1.过滤器的意义
2.生命周期
3.在web.xml中如何注册一个过滤器
4.过滤器链对象
5.过滤器初始化信息

 

1.过滤器的意义:根据URL分析要过滤什么样的请求

           所谓过滤,就是在真正请求资源之前将代表请求的request对象和代表响应的response对象截获,从而实现在执行资源之前和之后做一些额外的控制和操作。

 

2.生命周期:

           服务器启动,web应用加载,创建这个web应用的所有过滤器。

           创建好后调用init()方法执行初始化操作。

           然后一直驻留在内存中为后续的拦截进行服务,每次拦截到请求调用doFilter()方法执行。

           在服务器关闭或者web应用被移除出容器时,随着web应用的销毁过滤器对象销毁,销毁前调用destroy()方法善后。

 

3.在web.xml中如何注册一个过滤器

           <filter>

                      <filter-name>demo</filter-name>

                      <filter-class>filter.demo</filter-class>

           </filter>

           <filter-mapping>

                      <filter-name>demo</filter-name>

                      <url-pattern>/session</url-pattern>

                      <servlet-name>session1</servlet-name>

                      <dispatcher>REQUEST</dispatcher>

           </filter-mapping>

 

           注:

                      一个<filter-mapping>可以有多个<url-pattern>

                      一个<filter-mapping>可以有多个<servlet-name>,其实内容是明确的要拦截的servlet

                      <dispatcher>配置拦截哪种方式的对资源的访问,可以是REQUEST/ERROR/FORWARD/INCLUDE,默认是REQUEST,可以配置多个<dispatcher>

           

4.过滤器链对象:FilterChain

           一个资源可能被多个过滤器过滤,这些过滤器按照在<filter-mapping>中的配置顺序组成一个过滤器链对象。过滤器链对象的最后一个节点一个是要访问的资源。过滤器的各个节点提供了doFilter()方法,一旦这个方法调用,说明当前过滤器节点没问题可以执行下一个节点,如果下一个节点就是资源则直接执行资源。

 

           chain.doFilter(request,response);

           当两个过滤器都进行了过滤,过滤结果为:

                      demo1前,demo2前,资源,demo2后,demo1后

 

5.过滤器初始化信息

           <filter>

                      <init-param>

                                 <param-name>name1</param-name>

                                 <param-value>value1</param-value>

                      </init-param>

           </filter>

 

           注:可用FilterConfig获取初始化信息

                      String value = filterConfig.getInitParameter("name1");

           注:filterConfig对象还可以获取ServletContext对象

                      filterConfig.getServletContext();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏哥哥啊Aaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值