介绍

  Filter用于拦截请求与响应进行设置。

  Filter会双向拦截,在chain.doFilter()前拦截浏览器访问目标,在chain.doFilter()后拦截服务器返回响应

java 页面怎么拦截 java拦截响应_Web

 

 

方法

  void doFilter( ServletRequest request , ServletResponse response , FilterChain chain )

    参数:

      ServletRequest request:拦截的请求对象

      ServletResponse response:拦截的响应对象

      FilterChain chain:fileter自身对象,调用doFilter()方法让请求通过

    返回值:void

    返回值意义:无

    作用:拦截访问前和处理后的阶段。在这两个阶段作设置。 在chain.doFilter()前是访问阶段,chain.doFilter()后是处理阶段。

 

标签

  Filter需要在Web.xml作映射。配置拦截的Serfvlet和拦截类型

  Filter映射

<filter>
        <filter-name>FRegister</filter-name>
        <filter-class>filter.FileterR</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>FRegister</filter-name>
        <url-pattern>/fregister</url-pattern>
    </filter-mapping>

  <url-pattern> 拦截目标 (/* 表示全部,/文件夹/*:指向特定Servlet集合,/Servlet映射:具体某Servlet)</url-pattern>

  <filter-mapping> 内可用<dispatcher>( REQUEST or FORWARD or INCLUDE or ERROR ) </dispatcher> 拦截不同方法的请求。默认REQUEST。forward不会被拦截

 

使用

public class FileterR implements Filter {
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        req.setCharacterEncoding("utf-8");
        chain.doFilter(req, resp);
    }
}

 

Filter链

  多个Filter可以针对同一个Servlet组成Filter链。按住Web.xml定义的顺序拦截。

java 页面怎么拦截 java拦截响应_html_02