栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

servlet过滤器理解

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

servlet过滤器理解

一、过滤器Filter 1、filter的介绍

      Servlet API中提供了一个javax.servlet.Filter接口,开发web应用时,实现了这个接口的Java类,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,简单说,就是可以实现web容器对某目标资源的访问前截获进行相关的处理,还可以在某目标资源向web容器返回响应前进行截获进行处理。

2、filter的生命周期

Filter接口有三个方法,初始化init、处理过滤器doFilter、销毁destroy

public interface Filter {

    public void init(FilterConfig filterConfig) throws ServletException;

    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
            throws IOException, ServletException;

    public void destroy();
}

Filter的创建和销毁是由WEB服务器负责  init方法与destroy方法只会直接一次。

    在应用启动的时候就进行装载Filter类(与Servlet的load-on-startup配置效果相同)。
    容器创建好Filter对象实例后,调用init()方法。接着被Web容器保存进应用级的集合容器中去了等待着,用户访问资源。
    当用户访问的资源正好被Filter的url-pattern拦截时,容器会取出Filter类调用doFilter方法,下次或多次访问被拦截的资源时,Web容器会直接取出指定Filter对象实例调用doFilter方法(Filter对象常驻留Web容器了)。
    当应用服务被停止或重新装载了,则会执行Filter的destroy方法,Filter对象销毁。

3、过滤器的配置

(1)web.xml配置


  j2020051027_11_servletFilterListenerAllDemo
  
  
    FilterChina01
    cn.edu.cuit.filterChain.FilterChain01
  
  
    FilterChina01
    /ServletForFilterChain
  
  
    FilterChina02
    cn.edu.cuit.filterChain.FilterChain02
  
  
    FilterChina02
    /ServletForFilterChain
  

(2)注解配置@WebFilter

@WebFilter(filterName="MyFilter", urlPatterns="/*")
public class MyFilter implements Filter{

}
4.注意

 (1)filter-mapping标签中servlet-name与url-pattern

Filter不仅可以通过url-pattern来指定拦截哪些url匹配的资源。而且还可以通过servlet-name来指定拦截哪个指定的servlet(专门为某个servlet服务了,servlet-name对应Servlet的相关配置)。

(2)filter-mapping标签中dispatcher

指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个 子元素用来指定 Filter 对资源的多种调用方式进行拦截。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号