Filter的简介

Filter的简介

filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理

快速入门

步骤:
    1、编写一个过滤器的类实现Filter接口
    2、实现接口中尚未实现的方法(doFilter方法)
    3、在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
QuickFilter类实现Filter接口
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }
/*
*request:内部封装是客户端http的请求
*response:代表响应
*FilterChain:过滤器对象
*/
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("quick1 running...");
        chain.doFilter(request,response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

web.xml配置

  <filter>
    <filter-name>QuickFilter1</filter-name>
    <filter-class>com.kule.web.filter.QuickFilter1</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>QuickFilter1</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

图解filter的访问流程
这里写图片描述

Filter的API详解

filter生命周期及与生命周期相关的知识
    Filter接口有三个方法,与生命相关
        init(Filterconfig):代表filter对象初始化方法(服务器启动创建)
        doFilter(request,response,chain)
        destroy():服务器关闭时执行

配置文件:

<url-pattern>/servlet1</url-pattern>
<url-pattern>/abc/*</url-pattern>
<url-pattern>*.jsp</url-pattern>
<url-pattern>/*</url-pattern>

//<servlet-name>Servlet1</servlet-name>

filter-mapping配置
dispatcher访问的方式

<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EEOR</dispatcher>

总结Filter的作用:
1、公共代码的提取
2、可以对request和response中的方法进行增强(装饰者模式/动态代理)
3、进行权限控制

猜你喜欢

转载自blog.csdn.net/zld18721026149/article/details/72779169