00:00
好,那我们继续啊,继续什么呢?我就把它停掉了啊。继续看它的生命周期,要生命周期的话,我们给他先添加个无参构造器。然后再来个init方法啊。再来个。的思O。好。这干嘛的,创建。这是。初始化。
01:03
这个呢,销毁。好,下面我们运行一下,看看什么情况啊,看看它的运行情况是什么。走。诶,我咋看到个东西啊。呀,这什么创建初始化什么意思啊。我这个。应用一启动,我这个web工程一启动,我的服务器一启动,就发现这个filter怎么了?就被创建并且初始化了。那也就是说我们的filter。
02:05
是什么?是在?应用启动启启启启动时。被创建和初始化的对不对。那紧接着。我们大家知道,我给这儿刷新,每刷新一次,这边是不是都。出现你看刷新。是不是都执行do了?刷新刷新,刷新。你刷新一次的话,它有没有重新创建和初始化这个。没有。没有,那说明什么?没有,那说明什么?
03:01
说明是单利。是单立的。它是单立的。诶,那是它是单立的,因为不是单立的,那你刷新一次就应该创建一次对吧。那再来看。我再打开个浏览器。海尔,他。看好。我这儿清了。直接走。我问问。我们现在先推测一下,猜测一下。
04:00
这个F,因为我现在是不是有。又访问这个项目了,我们这个肯定是对所有请求都进行拦截的,那么我问一下some filter是不是又被创建了?有没有?看。有创建和初始化吗?没有。但是发执行了,没有执行了,那这说明什么。说明我们是单立什么多线程的。它是单类多线,也就是说整个应用里边这个sum只有一个。无论谁来访问。都可以,但这个实例就一个,所以它是单例多线程的。
05:00
Okay。要是单立的话,我们就可以推测出啊呃,单立的,那这样吧,继续,这不用推测了,这我们给他写出来吧,继续,这是什么?Filter是什么时候被创建的,被创建初化的,诶这写的啊,是应用启动的候被创建初始化的是吧,那销毁呢。那我们知道肯定不是你访问完毕哈,就把他销毁了。它是单立多线程的,那就说明。它的生命周期应该和我们整个应用是相同的。只有当我们应用停止的时候,它才会被被销毁。那是不是我们看一下。那我要停停服务器怎么停这样停啊。
06:00
Stop。销毁了吧。是不是,所以。继续。Fair是。在应用被。停止时。销毁了。那督促方法呢?Do filter方法是怎么?无论哪个。县城。访问。只要。由该filter进行。
07:05
过滤,那么就会执行。该filter的。Do filter方法。并且是美。过滤一次就会是不是直行一次读。那也就是说你过滤多次就会执行多次读。对不对,这就是我们说的它的生命周期。啊啊啊。声明它的特征我们看一下,那就。
08:03
单立多现成的。这是什么时候被初始化是吧?啊,这do filter方法的执行Detroit,哎,另外这儿还有一句,由于它是单利多线程的。那我们呢,大家知道,那么为了保证它的线程安全性,这个里边一般会怎么样。这filter里边是不放成员变量的。对不对,由于filter是单例多线程的。为了保证。七线程安全性。一般是不为filter添加什么。添加。
09:03
是这吗?一般是不为filter添加成员变量的,是这吗?不是啊,应该加个定语,一般是不被添加可修改的成员命令的。因为如果你添加这个成员变量。成语员是不可修改的,他也不存在现场安全问题。所以啊,是不为filter添加可修改的成员变量,OK了,这就是我们说的filter的生命周期。
我来说两句