Filter<过滤器>简单入门

  • 时间:
  • 浏览:
  • 来源:互联网

Filter功能

  • 在HttpServletRequest 到达 Servlet 之前,拦截客户的 HttpServletRequest 。 根据需要检查 HttpServletRequest ,也可以修 改HttpServletRequest 头和数据。
  • 在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。 根据需要检查 HttpServletResponse ,也可以修改HttpServletResponse头和数据。

Filtred的使用步骤

  1. 编写一个类去实现Filter接口
  2. 实现过滤方法doFilter
  3. 到web.xml中去配置Filter的拦截路径

Filter的生命周期

Filter生命周期:初始化>拦截请求>销毁

  1. public void init(FilterConfig filterConfig) throws ServletException;//初始化

和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作(filter对象只会创建一次,init方法也只会执行一次)。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

  1. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;//拦截请求

这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。

  1. public void destroy();//销毁

Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。

FilterConfig接口

FilterConfig是Filter过滤器的配置文件,Tomcat每次创建Filter的的同时也会创建一个FilterCogfig类,这里包含Filter配合文件的配置信息

FilterConfig类的作用是获取Filter过滤器的配置内容

  1. 获取Filter名称filter-name的:String getFilterName();
  2. 获取Filte中配置的init-param初始化参数String getInitParameter(String name);
  3. 获取ServletContext对象public ServletContext getServletContext();

FilterChain过滤器链

多个过滤器执行的特点:
1. 所有Filter和目标资源默认执行在同一线程中
2. 多个Filter共同执行的时候,它们都使用同一个Request对象

FilterChain.doFilter();

Filter的拦截路径

本文链接http://metronic.net.cn/metronic/show-53467.html