00:00
下一个呢,要复杂一些是吧,就是检测用户是否登录的过滤器,就是有些页面是只有你登录了我才可以访问,你没登录的话呢,就不让你访问。你就像我们在网上经常会看到类似的链接是吧?啊,你点进去发现你只能看一张图片,点开另外一张图片的话,对不起,必须注册,而且注册的话,那是要注册一个手机号,只要一注册的话,你就会一下子被扣N多的信息费是吧?嗯,我经历过这样的事。男生都应该有过类似的经历,我觉得行吧,因为你比我纯的好吧,好了,那我们看一下这个,我们把这个改成呢,Log。新建一个文件夹,OK,这里边呢。
01:03
我们来写几个DP,比方说a.DP。这里面也不写别的啊,写个H4就可以了。AA。多写几个。嗯。我们写这样的五个页面,然后这五个页面呢,比方说我们只有啊A那个页面你可以随便访问,就这个页面啊,你可以随便访问,而这个BCD啊,你都需要这个,呃,有了登录之后才可以访问,还有一个可以访问的,比方说就是list JSP看这个来。
02:04
绿色的电梯。这个页面上呢,有五个超链接,分别连到那五个页面,A a.BMP。行。B。嗯。CDE,好,写完写完之后呢,我们来看这个。
03:07
然后呢,在这个页面里边呢,每一个都会有什么呀,每一个都会有一个返回写一下吧。叫list的叫。这是个啥情况呢?跑一下我直接访问的呢,是。干啥哈?然后点A。B。CD。
04:00
这个没问题是吧,就就像哎,我们到了一个这个图片的一个列表是吧,我可以看第一张,但是我们说呀,这个BCDE。只有你登录的时候才可以访问,那我这写一个login.jsp吧,只有登录才可以访问login.jsp。log.jsp登录的话呢,非常简单哈,写个form就可以了,Form。Do log in点,我们不写什么,不写so了哈。Method post都在JSP里边写,就是不访问数据库的话,JSP里边写代码的话就是快,你写service开始配吗?但是真正开发的话呢,还是推荐使用MVC设计模式啊,看不那。You,好。
05:02
In five写完啊,那这个时候的话,我有这么一个页面本抽。C过来。是因为怎么写啊,就登录呗。咋写的呀,说呀。第一个你要这个页面的话呢,我首先获取。用户的登录信息。二、若登录信息完整,则把。登录信息。放到什么里边,30里边是吧,登录信息我保存的话,不是我们30里边吗?三重定项。到我这个的话呢,是到MR点这就可以了,或许吧,我这个简单啊,只有一个nameme。
06:17
然后呢?You name不等于no。而且you name.train点。Equals不等于空。然后。放到30里边去。好,然后怎么了。去年的页面,维斯胖点。Send。Julia。我用的都是相对路径哈。
07:03
否则呢?否则去找夜班。都不完整啊。去首页,我这里边儿是log in。这GP行了,没有这个斜杠啊,有这个斜杠是不是跑了跑到。站点的根目录了,这个不要好了,这个写完之后的话,我们说只能访问A,而这个BCDE呀,我都需要去干什么呀,检验一下用户是否登录。检验用户是否登录说。若没有登录则。直接。重定向到老给DP那什么样什么样检查呀,获取一个信息呗。
08:01
三生点大怎么追求他这名儿叫什么名?看是U点啊,CTRLC拿过来点,如果。这个U端是空的话。怎么了,我就点。去哪个页面啊去。是这写吧,好了,现在的话呢,我需要验证多个页面登录才可以进行浏览,我这个代码是不是得复制啊。C、复制的满哪都是。一个。再复制一个,这样的话,我这个目的是不是是不是达到了呀,好看。
09:01
放心,A,可以访问没问题,访问不了了吧?C、让让。E,然后登录。是不是这都可以了呀,哎,我们呢,就想实现这样一个功能,我不需要再在这个b CE de里边轮流复制这个代码,而把这个代码放在我们的一个filter里边,这就是我们要说的这个叫。检查用户是否登录的过滤器,清楚了吧?到后边我们讲那个。A op的时候能面向切面边长,实际上我们说的这个过滤器有一点那个味道。那我们把这个需求看一下吧,说情境系统中某些页面只有登录以后才可以使用,用户请求这些页面时,需要检查三分钟是不是有这个用户的信息,如果所有页面都需要判断的话,很麻烦。解决方案,我们写一个用于检测用户是否登录的过滤器,如果用户未登录,直接从定向到对应的页面就可以了,不过呢,我们是有要求的,有什么要求呢说?
10:21
山参这个保存的关键字啥意思啊,过来看啊,过来看在我这边放的时候啊,这个关键字叫logo。就是这个键的名字我取的时候,我是不是刚才去对照了呀,这个优点,我说这个优点呢,应该作为一个,呃。对,刚。Context存在,你看这个,如果用户未登录重新定向,重向的页面,不做ul检验的页面变为可配置的方式,什么意思呢?就是说我这个session key我来写一下吧,User session key过来看都写为contact per写几个哈,第一个说啊。
11:14
用户。信息放入到。Session中的剑职剑的笔。要配置一下和。Name叫。ST变为可配置的方式。Para value。比方说刘德。选T值无所谓了啊,主要是这个名就是说呀,我下一次我在这块放的时候,我这个值应该用什么呀,应该用配置文件的这个值,那我同样我进行检验的,我也需要用配置文件里边这个值,而不是把这个值随便这样。
12:09
写死的,它是可配置的,再有一个,还有一个什么呢?说若未登录,若未登录需重定向。重定向的页面,这个也需要放到这个里边来,来context。Name需重定向的页面,那写吧,Dict。嘿,什么呢?More value根目录下log in目录下的log in.P这个页面我现在怎么写的呀,我现在是不是直接写死的呀,去这个地儿吧,那现在的话呢,我变成可配置的了,就是说我还可以去别的页,只要你提供一个我配比它就可以再来一个,还有一个还有一个什么呀,说不需要检查。
13:16
的,或者不需要拦截的吧,拦截或检查或检查的ul。列表什么叫不需要检查呢?你看这个下边我们对于log in本身list跟不log in是不是任何人都可以上啊?你。这么还有A这四个页面,任何人都可以上,这就叫什么不需要检查的这个,呃,用L列表啊,Context para写个para name叫不需要检查object。Ied to is。用动画分割。Y根目录下的。
14:02
Login下边的A点提着是一个。C。下一个是list.gp。下一个是log in,点点P,还有一个什么呀。Do login.t看懂了吧?这些的话呢,要变为可变为可配置的,那为什么这个变为可配置的呢?我们那个filter啊,我要一拦截的话,我就得拦截个加班的。所有的这个DP吧,是吧,或者说你不能够说,哎,我一个一个配那个不行,我一拦截的话呢,我就拦截一组,那我告诉你哪哪些不需要拦截啊,这些不需要拦截好了。继续我来写一下这个filter的架子哈。叫老病。烙印。
15:01
这个。老给。好,我们想想看。首先。第一步。我先需要获取三身。T呀。I really like。用L啊,还有什么N啊,用LS啊,什么从这里边获取啊,从web.XL文件中获取这样一些信息,这个信息啊,是死的来获取这个啊这个。这个还有这个只读的嘛,所以说我之前的话呢,获取了,获取好之后的话,大家想这块我都需要干什么呀。
16:05
第一步第二步。第三步。你怎么想想我都需要干啥?第一个我需要检查一下你来的这个页面是不是需要拦截了,所以说我首先先获取。获取什么呢?获取来的这个URL获取啊请求的URL好了,怎么获取呢?我们说request URL等于点get request。URL还有一个什么呀,是不是还有一个呀,这request UR。I等于request.get。
17:01
repeat.u。点你打错了。换。哎哟,这写错了是吧,点get request。啊,这个错了,这个就图。UI。区分一下都都是什么呀,还有一个可以用呗。前面我们也经常写过的一个叫什么pass等于request点。看看到底是哪个咱。第一个URL。URI。第三个pass好了,配置一下,这个呢是拦截,呃,这个log下面的所有的JP比C。
18:05
外挂软件过来。Filter。丢。Name。下一个。Photograph。Filter,然后呢,Name。You。拦截谁呀?拦截log in下边的所有都拦截好看效果。三个值第一个,第一个叫啥来着。
19:02
You are。URL吧,第二个就UR,看ul是不是带这个站点的全部啊,而这个UI呢,就是抛出站点了吧,So pass是什么呀?是不是特把这个都去掉啊?好了,我们再写一个。哦,他给拦住了是吧。这个问号了,问号ABC随便写啊,看这个的话呢,它是不带这个参数的,所以说的话呢,这个是URL就长最长。嗯。这个ul。好了,少一点的就带。这个。什么的呢?在这个context past叫uri,还有一个不带context叫。
20:09
Past,所以说我们看这个数不就是这个是不就就够用了呀,OK好了,然后获取完这个之后呢,第二步。第二步,检查。嗯。一获取的pass是否?喂。不需要检查的ul中的一个。如若。是说什么了?折,直接放行了吧,那你你要请求的是a.PP你随便访问过吧?你要请求的是list扩吧,你请求的是log log随便扩好了,那放行,然后呢方法。
21:06
结束吧,OK,再来一个说那底下很明显是需要检查的,那我需要检查的话,我怎么检查呀。我怎么检查呀?三中获取获取。获取它们,CTRLC获取这个对应的。直说若值不存在则怎么了?如果这个要是没有的话,则从定向到哪啊到。到这儿吧。去这个地儿好了,落。存在呢,存在说明这不是耽误了呀。则放行。
22:02
允许访问。这就是我们的什么呢?这个就是我们最终的这个里边的基本逻辑,OK,我们整个呢,再跟大家再说一下,我们呢,需要写这样的一个。Filter filter啊,我们要写这样一个filter,这个filter可以对啊。这个目录下的所有JP都来进行拦截,但是啊,有些需要拦,有些不需要拦,那我不可能,我说诶哪些需要来,哪些不哪些不需要拦吗?我在这里边的话呢,我还不能够一个一个去配,所以说的话呢,我就配,我说拦截所有的好吧,既然是拦截所有的,那我就得知道哪些不需要拦截。我把这个配置在了这个Y方还XMR文件里边,告诉你啊,这些是不需要拦截的,然后如果需要拦截的,然后你还没登录的话,转向的页面我也配置了。
23:05
还有一个赛里边那个键的名字我也配置了,然后呢,在这里边我需要干这样几个事儿,第一个获取请求的URL实际上不是URL了,So pass。好了,然后呢,检查这个是不是不需要检查的,不需要检查的直接过,然后如果需要检查的,看赛车里边有没有那个用户信息,有的话直接过,没有的话对不起去这个页面。把这个完成一下。一起完成一下啊,我们已经把这个步骤呢,写到这种程度了,是吧,大家应该可以写,那至于说里边具体细节,比方说啊,说我这个pass啊,是不是这里边的一个什么比有很多种方法。你需要自己搞定。真正开发的时候的话呢,人家把一个需求抛给你了是吧,根本就不告诉你应该怎么做,你完全需要自己写,那我们这块的话呢,还给了较为详尽的步骤,所以说大家要提前有一点这样的思想准备。
24:14
好痛。长成这样,然后。什么呢?这个值我先需要获取一下。3T。Privatedirected。In里边搞定。好了,都需要进行赋值,所以说我把这context搞出来,等于that that。Conflict get第一个key。
25:06
等于service,这只是什么呀?这个款。非到明吗?XUL等于。Police contacts get in from。应该是啊。春来。U等于context点。二。大家说哈,我获取值我放在这个里边跟放在这个里边有什么不一样吗?我放在这个里的话,是不是只需要获取一次就可以了呀,你放在这里边的话,是不是我每请求一次我都需要获取啊,所以说效率会多少的高那么一点。
26:05
这个搞定了,在不在这个里边怎么搞啊,我这块搞的这个值是什么东西啊,长成啥样啊。不能这样。嗯。那我怎么说这些里边有没有他呢?一个一个应该怎么比啊。有很多种方法是吧,我们这样写,我得到一个list,放的是。Untract。LS等于点S。然后呢,按ul点用逗号分。然后if,如果UR l.contain如果要是包含service pass的话,我怎么了,我重新过了呀。
27:07
PH。点度。Four。Do request response,然后完了。然后呢,这个值有没有,否则的话呢,我得去取object user信息,等于session,怎么获取request get.get。因为什么呀?如果U等于空的话,是不是意味着我没有这个登录过呀,那我就response点。Send direct。Ul,好了。
28:01
否则。点写完看效果。刷新。可以访问哈,嘿,没问题,B坏了。我是不是没写那个啊,看见了吧。来。Comest加。保存,因为我那个里边的话,那个根目录代表的是外部应用的,是外部应用的。呃,这块有个斜杠是吧,这个斜杠这个斜杠的话对吧,应该在哪登目录吧,因为我要进行同镜项啊。不,不行。
29:02
C不行不行不行,AB可以,这个页面可以。这个页面可以好写个A。CD,可以的B。有问题吧,是吧,这个B呢,我没有把这个注释去掉吧。听到。干掉。对,删掉保存。No,还没行吧,Close啊看看我已经登录了啊,我这个B我还是没进来,为啥呀。那肯定是我的飞头有问题呗,对吧。
30:04
三。我登录的时候哦,这个没处理版是吧,这块的话我是不是写的优呢,写成。application.that这应该是啥呀?跟这个一样吧,这个键在这呢。很多C来。Often。再来abcd。中好了。复制。A,不行。C不行B不行B不行。
31:01
好,我写一个。可以了,那为了让大家看到我们这个效果呢,我怎么办呢,我这个配置文件里边啊。我们再加一个面。我加一个页面,比方说。Log下边的。b.CBB这个页面你也可以访问了,好,重起。E。这个是缓存,这个是那个什么哈,30可以持久化。重新问一个太。A可以,B可以C不行吧,也不行D也不行B为什么可以呀?我说配了。
32:01
好了,登录。这样这个就完成了。
我来说两句