编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Filter 过滤链

编写FilterDemo1类

package com.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{
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("我是FilterDemo1,客户端向Servlet发送的请求被我拦截到了");
        //对请求放行,进入下一个过滤器FilterDemo2
        chain.doFilter(request, response);
        System.out.println("我是FilterDemo1,Servlet向客户端发送的响应被我拦截到了");
    }
    @Override
    public void destroy() {
    }
}

编写FilterDemo2类

package com.oracle.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 FilterDemo2 implements Filter{
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("我是FilterDemo2,客户端向Servlet发送的请求被我拦截到了");
        //对请求放行,进入Servlet
        chain.doFilter(request, response);
        System.out.println("我是FilterDemo2,Servlet向客户端发送的响应被我拦截到了");
    }
    @Override
    public void destroy() {
    }
}

web.xml

<filter>
      <filter-name>filterDemo1</filter-name>
      <filter-class>com.filter.FilterDemo1</filter-class>
  </filter>
  <filter>
      <filter-name>filterDemo2</filter-name>
      <filter-class>com.filter.FilterDemo2</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>filterDemo1</filter-name>
      <url-pattern>/*</url-pattern>
      <!-- /*是对所有的文件进行拦截 -->
  </filter-mapping>
  <filter-mapping>
      <filter-name>filterDemo2</filter-name>
      <url-pattern>/*</url-pattern>
      <!-- /*是对所有的文件进行拦截 -->
  </filter-mapping>


未经允许不得转载: 技术文章 » Java编程 » Filter 过滤链