JavaWeb Filter

Filter

1.JavaWeb的一个重要组件,可以对发送到servlet的请求进行拦截响应也进行拦截

2.Filter是实现了Filter接口的java类,需要在web.xml中进行配置

Filter的实现

1.创建一个filter实现filter接口 public class HelloFilter implements Filter()实现所有方法

2.在web.xml文件中配置

<filter>
    <display-name>HelloFilter</display-name>
    <filter-name>HelloFilter</filter-name>
    <filter-class>cn.stud.wlc.Filter.HelloFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>HelloFilter</filter-name>
    <url-pattern>/Filter/TestFilter.jsp</url-pattern>
  </filter-mapping>

Filter相关API

1.filter接口方法

   init() public void init(FilterConfig arg0):

                   init类似于servlet的init方法在创建filter对象后立即调用且值调用一次 filter在servlet容器加载当前web应用的时候即被创建

                   FilterConfig类似于servletConfig

                   可以在web.xml中配置初始化参数

                   多个filter拦截顺序与<filter-mapping>的配置顺序有关,靠前的先被调用

<filter>
        <display-name>HelloFilter</display-name>
        <filter-name>HelloFilter</filter-name>
        <filter-class>cn.stud.wlc.Filter.HelloFilter</filter-class>
        <init-param>
            <param-name>name</param-name>
            <param-value>root</param-value>
        </init-param>
    </filter>

  dofilter() public void doFilter(ServletRequest request, ServletResponse arg1, FilterChain chain)

                    真正的filter逻辑代码写在这里每次拦截都会调用该方法  放行方法 chain.doFilter(request, response);

                     FilterChain   filter链,

                   若当前filter是最后一个filter则把目标请求给到servlet或者jsp

  dodestory() public void destroy()

                      释放当前filter所占资源的方法,

原文地址:https://www.cnblogs.com/wlc297984368/p/5434849.html