Filter介绍

Filter可以认为是Servlet的一种加强版,主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。

Filter的作用有:

  • 拦截客户的HttpServletRequest, 修改其头和数据
  • 拦截到达客户的HttpServletResponse,修改其头和数据

1 创建Filter类

创建Fileter类必须实现javax.servlet.Filter接口,在这个接口中有三个方法,init, destroy, doFilter

@WebFilter(filterName="log",urlPattern={"/*"})
public class LogFileter implements Filter
{
    private FilterConfig config;
    public void init(FilterConfig config)
    {
        this.config = config;
    }
    public void destroy()
    {
        this.config = null;
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException
    {
     }

2 配置Filter

配置方法除了上面用@WebFilter注解来进行配置之外,还可以通过web.xml来配置

<filter>
    <filter-name>log</filter-name>
    <filter-class>kevin.LogFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>log</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在实际项目中很多Servlet中涉及到的权限控制、记录日志等代码是重复的,这样就可以放到Filter中进行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 7,361评论 3 56
  • Filter的主要作用于对用户进行预处理,也可以对HttpServletResponse进行后处理,是个典型的吃力...
    数独题阅读 503评论 0 0
  • 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...
    奋斗的老王阅读 2,565评论 0 53
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,372评论 11 349