Java Web开发——Filter

Filter简介

Filter是java servlet中提供的一个接口,在进行Javaweb开发时一般继承该接口实现一个过滤器类,主要功能是拦截对指定的服务器web资源调用,在调用前执行相应的动做java

public interface Filter {
    void init(FilterConfig var1) throws ServletException;

    void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;

    void destroy();
}

public void init(FilterConfig filterConfig)
web 应用程序启动时,web 服务器将建立Filter 的实例对象,读取web.xml配置,将Filter的配置参数信息生成一个FilterConfig对象,传入调用其init方法,完成Filter对象的初始化功能,从而为后续的用户请求做好拦截的准备工做(filter对象只会建立一次,init方法也只会执行一次)。开发人员经过init方法的参数,可得到表明当前filter配置信息的FilterConfig对象。web

public void doFilter (ServletRequest, ServletResponse, FilterChain)
该方法完成实际的过滤操做,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器,即在doFilter方法内继续调用,FiterChain.doFilter(request,response)服务器

public void destroy()
Servlet容器在销毁过滤器实例前调用该方法,在该方法中释放Servlet过滤器占用的资源。app

 

Filter的配置使用

编写好的filter类须要在web.xml中配置url

<filter>
    <filter-name>global</filter-name>
    <filter-class>net.yuchen.web.MyFilter</filter-class>
    <init-param>
        <param-name>action-path</param-name>
        <param-value>net.yuchen.web.action</param-value>
    </init-param>
    <init-param>
        <param-name>template-path</param-name>
        <param-value>/WEB-INF/templates</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>global</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-name>: 指定过滤器名称spa

<filter-class>:过滤器的完整类名xml

<init-param>: 配置参数,<param-name>指定参数名,<param-value>为参数值,这些参数会在filter对象初始化时被读取,在init()方法中能够经过filterConfig.getInitParameter("param-name")访问到对象

<filter-mapping>: 指定过滤器名称及做用的URL范围,/*为全局做用继承

相关文章
相关标签/搜索