00:00
啊。那么下午呢,咱要做的第一个呢,就是给大家去演示一下,怎么利用这个过滤器,对拦截的这个请求对象呢,做增强处理好了,那么咱们先画一个调用的流程图,我们看看啊。呃,这边呢,是我们的这个浏览器好了,那么这边啊,是我们的服务端的计算机,哎,在这。那么现在呢,我们去看一下啊,在我们的服端计算器上面呢,诶,比如说有一个啊,那么这块起名呢,就叫做one serve light啊one threat好了,那么这个呢,它呢要处理的是什么呢?是我们的post请求,所以里边呢,我们写上public word叫做do post好了,那么在这个方法里边呢,诶做相关处理。行了,那么一提到post这个请求啊,那么我们的海松啊就应该出现相关联的知识点,比如说什么呢?Post请求方式特征,第一个呢,在这里边不限制浏览器啊传递的参数的数量,第二个呢,要求浏览器呢把我们的参数信息在D联中隐藏起来,第三个呢,他要求浏览器啊把参数放到请求体中,第四个呢,它禁止浏览器对服务端所返回的响应内容来进行一个保存,也就是预后积分。
01:34
然后呢,从第三个特征啊,请求参数在请求体里边又引发了另一个知识点,说什么知识点呢?当请求系胞到达负端之后,那么我们的comca呢,会委派请求对象对请求体中的二进制数据进行编辑,那么这个请求对象呢,它啊默认用的是何等字符集啊,RS和859,那么当请求对象内容这个字符集对请求体的内容在做解析的时候,如果此时请求体中的参数是中文,那么我们我们在编辑之后得到的是什么呢?就是办法,所以呢,我们干嘛呢?在针对posts的这种处理方式中,在我们读取请求参数之前,我们一般啊要写一行命令,什么命令呢?就是通知这个请求对象去使用啊,Char呀,Chart including,哎。
02:34
继续使用什么呢?去续使用utf杠八这个字符集,对请求体的内容来进行一次重新的编辑,然后再读取数据,对吧?有这么一个命令好了,那么假设呢,咱们这个网站比较大啊,比较大,那么在这里边呢?呃,我们的这个网站里边啊,那么比如说有什么呢?我们说有100个threat,这100个threat呢?现在假设他们干嘛呢?都是去针对啊,咱们写上啊,呃,100啊,这100个threat,他们都是针对我们的post这个方式来进行处理啊,它们里边儿都有什么呢?都有我们说这个do post方法好了,选上word do to,那么这时候就产生了编程中的一个问题了,什么问题呢?
03:30
在这100个server的里边,为了确保我们读取请求体征参数,其值不会出现增代码,那么我们是不是要反复的去写这一行命令啊。咱们看一下在这。就是record.c差coding,那么它势必可以增加什么呢?我们的开发难度122GL命令要写100次,那么200个呢?写200次好了,那么有没有一种方案可以让我们在开发serve light的时候不需要去写这行命令也能确保呢?在POS方式下从请求体里边读取内容也不会有综合办法的,这个问题恰恰是过滤器对象能完成的一件事情。好了,那么在这里边我们去看一下啊,我们呀,在我们的网站中放什么呢?放一个过滤器,放一个过滤器,哎,在这filter。
04:28
好了,那么这个过滤器呢,在这里边呢,它呀要针对啊,要针对呢,所有的这个的这个请求啊,针对所有这个请求呢,那么来进行一个相关的拦截,也就是说只要发现Coca,它要掉的是一个sup,诶咱们过滤器就拦截,那么在我们上午啊,我们讲过这个过滤器呢,把to的拦下之后干嘛呢?会把当前的请求对象和当前响应对象,那么放到do中。
05:05
那么这时候想想此时我们要干嘛呢?那么这个时候我们要在这个do feel方法里边做一件事情,什么事情呢?用来既然我们现在手上有当前的这个请求对象,那我们是不是就不用客气了,在这里边写什么呢?Iq.set Cha这个插in扣Ding,然后在这里边写上U添大,也就是说在过滤器里边,我们通知请求对象重新对请求体的内容来进行一次编辑,编辑之后干嘛呢?哎,我们放行,我们把我们蓝色的请求对象和显应对象交还给康盖,那么康盖特呢,就去调调我们对访的S,在调的过程中,他把请求对象和请求对象传到了我们的这个do破方法里边来,此时在突破方法中我们通过request再去取参的时候,那么此时这个参数已。
06:05
已经通过ul杠八编辑后了,所以取得时候就不会有中文的量码了,而这个时候呢,我们在当前网站中所有针对POS请求来开发的filter里边,还用不用写这个命令呢,就不用了,而这个就是我们过滤去第二个功能,对拦截的请求对象做增强服务,那么接下来呢,我们就通过具体的代码来实现一下啊,好了,我们去看一下啊。呃,在这里边呢,我们去写上第19个网站好了,企业级应用下一步,然后里边呢,咱们写上这个网站名称啊,写上持久好,我们看利用我们的过滤器对我们的请求对象啊,对请求对象来进行网特这个增强的这个服务好了放出,那么首先啊,咱们先整个页面出来啊,找一个能够控制浏览器以POS方式来发送请求的这么一个页面,在web下面呢,我们啊去新建,新建网页出来,线上我们说什么呢?叫做index好缓存。
07:15
保存完了之后呢,我们这边写上一个center命令啊,Center居踪,居踪完毕之后呢,这里边写上两个form好了,第一个form act t action,然后里边写的是访问当前这个计算机中啊这个one,那么以各种方式来访问它呢,Post,诶,在这好,在这一放,然后里边呢,咱们写上一个参数啊,就是一个文本框input task等于我们说的task,然后给它呢起一个名字name好了,叫做username,然后再去后方,我们再去做一个,做一个什么呢?提加按钮,咱们写上input time等于sub me好形成Y6值,说要干嘛呢?以pose方式,以pose这个方式来访问我们的这个one serve好了。
08:16
然后我们再写另外一个form ctrl c ctrl v,然后在这个form里边呢,它来访问什么,刚才我们说的to啊,To也是以POS方式来访问的,那么这一块呢,指的就是以po方式访问我们的two thad,诶,你看这两个form呢,都将通过浏览器以POS方式来访问这两个S行了。那么接下来我们在工程里边呢,来开发这两个数,好在19里边先建第一个数,先写报名,那么cf.BG power node点咱们写上C好了,那么这个呢,是什么呢?就是我们说的YS好保存,然后呢,这里边呢,咱们写上啊,写内容s mapping好,One for,斜线Y,然后呢,我们再去创建什么呢?再创建第二个S出来,在这里边。
09:12
Controller,右键U,然后我们去写一下啊,写下这个算在这过来,那我们写上to好了,往里放,那么写上它对外的请求地址啊,To th,斜线to,那么由于浏览器呢是以po方式来访问这两个threat,所以在这两个to开过程中呢,我们都针对postose方式来进行处理,那么先写one看好了,那么在这里边我干嘛呢?我呀直接直接从我们的请求题里边来读取我们的请求参数,那这里边request点,然后写上get perter,参数名称username好把这个参数值取出来,外面写上string,然后就给变量username好了,取完之后呢,然后在这里边做一个输出啊,输出说呢,呃,我们的这个one serve,那么它呢,从。
10:12
从我们的请求题里边去得到的这个参数是多少?那把变量值在空台给输出好注意,那么在这个方法里边我是不是没有写,没有写什么呀?request.set coding啊,没有取啊,没有写,然后现在呢,我再去写这个two,好在这也是在其do破方法里边做这个事情,也是直接取,直接从题空题面拿这个参数,那这时候我们说的图出好了,那么这时候问题来了,如果你不对请求体里边的字符集啊,如果你不使用A这优先杠八对请求体的字负集重新重新编辑,那么请求体中的中文参数此时在得的时候就一定是一个办法,然后解决这个问题呢?那么最简单方式,你在每一个作里边都写一个request.s那么这显然会极大的增加我们的工作量,怎么办。把过滤器交给。
11:12
好了,那么我们呢,在BG park下面建一个加力出来啊,写上它叫做filter这个包,然后呢,给它起名就叫做one filter好保存,那么首先呢,让他呢来做一个实现啊,做一个实现,实现我们的filter接口,实现完了之后呢,诶等等啊,我来看行了,实验完了之后呢,那么在这里边我们呢,对do feel方法来做一个什么呢?重写,而在这里边要做是什么呢?就是我们通知,通知我们所拦截的这个请求对象去使用,使用utf杠八这个字符集啊,使用这个字符集,那么对当前请求体中的这个信息来进行一次重新的编辑啊,重行编辑,那么这就是我们所拿到的这个拦截请求对象。
12:12
过来,然后点set插引扣点,然后使用utf杠八,那编辑完毕之后呢,增强功能啊,这块的增强功能我们就做完了增强功能,然后放行,把这个过滤训练条对象叫过来,然后点do future,把我们篮下的请求对,把我们篮下的响应对象,那么交还给toca,而to们呢,在调班sort或者调to的时候呢,会把这两个对象传到我们的方法里边来,好了,在这写完,那这边写完之后呢,我们是不是得注册一下呀,必须得注册一下。回到我们的外表,插妙命中来进行相关的注册好了,那么第一个呢,是什么呢?先告诉我们的comp随时过滤器,完了写一个filter标签,然后写上我们说one filter在这啊,One filter。
13:08
然后呢,写上什么呢?Filter class好了,Film m点点filter.one filter啊,这是一个过滤器,那么第二件事情呢,告诉他们看看哪样哪在调哪些文件的时候得让这个扩位器拦截好了,那么在这里边啊,我写上了啊,写上这个filter map啊filter map好了,我写上什么呢?One filter you pattern,我写什么呢?斜线星,那么这个斜线星代表什么意思呢?看好了,过来天星。在这里面他们通知这个tomcat在调用所有文件的时候,通知我们toca,他呢,在调用所有资源文件之前,啊,所有资源文件之前,那么都需要干嘛呢?去调用我们的这个one filter,叫one filter来进行什么呢?进行拦截,诶这是一个特殊的格式,关于这个格式具体的写法和分类呢,把这例子讲完之后,我们再讲一下,行了,那么现在呢,我们就在过滤器里边设上一个断点,设个断点,然后呢,我们开始来进行测试了,啊测试这是第19个网站了,行嘞,然后启动contact。
14:29
看效果啊。呃,我们看开速走一下啊,先放一下行了。呃,在这里边啊啊,还要再走一下,走一下行了,在这进来了,那么现在呢,我们以pose方式来访问我们说的one,我们一个什么呢?比如说写一个香蕉,我们看一下,写上一个香蕉,好发送请求,走诶啊我们看看啊,MY外脖中的这个Y由。
15:14
那我们看看啊,什么情况啊,什么情况。在这里边他说呀,404了,他说我们这里边啊,没有这个资源完事,嗯,你看这时候就乱了,乱套了,就乱套了,他怎么说没有这个资源呢?啊,那说没找到404,那这时候考虑考虑什么问题呢?有可能就是我们的idea,它的这个缓存的问题啊,那么文件工程结构,然后选择artfit这个缓存问题啊,都有可能出现,然后在19这里边,嗯,把这几个项都先删掉啊,这是idea对于当前这个网站的一个记忆啊,都删掉它了好了。OK一下应用OK,然后在这里边儿呢,我们重新启动一下啊,重新启动一下,启动走。
16:13
看效果啊。你看启动了,为什么在启动时过滤器就开始工作了呢?因为在启动完毕之后呢,我们的idea呢,要打开一个浏览器,要利用这个浏览器呢,向当前网站发起一次默认请求,那么针对这个默认请求呢comca呢,要调用当前网站中的这个欢迎文件平台,那么我们在配置文件中,我们给人说好了,说好什么呢是吧。只要充分的在调当前网站中任意文件时,我们过去就要处罚,那么这时怎么办呢?放行啊,说快速执行走行了。那我们看看在这啊,快速走一下行了,走完之后呢,我们看看这个程序啊在这,那么现在呢,我们走一下啊,重新走一下之后来一个什么呢?来一个香蕉好了发送哦,我知道为什么错了,各位,我知道为什么错了。
17:13
为什么说呢?你看咱的网站叫这个名字。我发送的请求地址是谁呢?你看,走一下,是妈妈,咦,在这儿啊,在这儿,终于搞清楚了,那么呃,怎么办呢?改网站名的,把网站名改一下,这事其实不难啊,这事不难,我们看一下软艾。然后发布这里边儿,咱网站叫这个名字啊,我们改CTRLC,然后回到我们的这个index这个页面中,把网站名改了就得了呗,能有多大的事儿,嗯,改一下行嘞,然后我们这边刷新一下啊,刷新走刷新。然后把断点,断点处呢。那俩我啥心?
18:00
哦,在这儿回去啊,再回去行了,我们刷新一下啊刷新。啊,这是清空行了,那在这看我们的地址,地址方前地址诶没变,哎呀。这块走一下。走。变了吗?没变得了得各位啊,咱们咱们重启一下,重启一下好烦这个缓存呢,上一阵啊老烦喽,走。走。在这。进来行了,那么进来之后呢,我们看看啊,这把地址是不是变了呢。好,网站名对上了,行,我们现在以po方式往单给了一个相交的参数,好了,发送请求走,那么请求给了tomcad,而汤姆CA呢,在准备调用one serve LA的时候,咱们的过滤器出面了,拦下了,从to手上呢拿到了当前的这个请求对象,内存地址是2989啊2989,然后呢,他把他通知这个请求对象说呀,等一下你就要传到one sir里边去工作了,哎,那么在进去之前呢,你现在赶快对请求体中的内容重新去编辑一次,那么请求对象呢,照办照办,之后我们把请求对象和选用对象诶交还给他们看啊,2989,然后他们现在呢,干嘛呢,就去调班S,调弯S,我们在弯S身上设一个断点,这个断点啊,我往下走,一下走过来了,那么大家请看,此时弯S得到的是什么呢?是。
19:57
分开的窜给他的请求对象2989对吧,从一个对象行了,那么这个时候在弯里边就直接干嘛呢?就直接从氢求体边拿出据了,由于由于此时啊请求体的内容已经在刚才布题中已经被通知用U田杠八去编辑一次,所以这把我们所读取的内容就是一个正常的中文,我们看什么呢?相交好做输出好,各位同学,大家刚才所看到的这个例子是什么呢?大家所看到的这个例子诶就是什么呢?就是我们说啊过滤器对拦截的请求对象做增强服务的好把。
我来说两句