Filter-拦截器

Java知识学习记录

如果对你有帮助,请关注我把!

转眼之间,已经是2018年6月10号了,这个月已经过去了三分之一的时间,不禁感慨,时间真的过得太快了,如沙,想抓都抓不住。按照计划,这个月完成SSH三大框架及项目的学习,加油!

今天,来复习Filter - 拦截器,先回想一下filter有哪些内容。

filter的创建和Servlet的创建大概流程一致。

1. 创建一个类,并继承Filter

2. 覆写Filter的三个方法,主要实现doFilter方法

3. 在web.xml注册filter

拦截器的作用有哪些?

1. 设置全局编码,

2. 设置自动登录。

想起来的大概内容就是这些了,下面赶紧的复习一下笔记。

Filter - 拦截器

Filter简介

filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。

Filte快速入门

步骤如下:

1)编写一个过滤器的类实现Filter接口

2)实现接口中尚未实现的方法(着重实现doFilter方法)

3)在web.xml中进行配置(主要是配置要对哪些资源进行过滤)

Filter对象的生命周期

Filter何时创建:服务器启动就创建该Filter对象。

Filter何时销毁:服务器关闭时Filter销毁。

Filter接口的三个方法

Filter有三个与生命周期相关的方法,分别是:init(),doFilter(),destory();

在这三个方法中,主要学习的是doFilter()方法,

其中的参数介绍:

ServletRequest/ServletResponse:每次在执行doFilter方法时 web容器负责创建一个request和一个response对象作为doFilter的参数传递进来。该request和response就是在访问目标资源的service方法时的request和response。

FilterChain,过滤器链对象,通过该对象的doFilter方法可以放行该请求,这个方法非常重要,必须放行此拦截器才能起到作用。

Filter的配置如下

在一个项目中,根据实际情况可以设置多个不同的拦截器,那么如何判断先执行哪个拦截器呢?

根据配置的的顺序来执行filter的顺序。

配置时有三种配置方法

1)完全匹配 /Servlet

2)目录匹配 /aaa/bbb/* ---使用最多

3)扩展名匹配 *.jsp

-- 所有是此扩展名的文件执行此过滤器

THE END

最后,总结一下Filter的作用,根据实际业务场景来使用:

1、公共代码的提取,

2、可以对request/response中的方法进行增强(装饰着模式/代理模式),

3、进行权限控制。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180610G08EX900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券