00:00
好,我们再来看一个例子,访问权限过滤器。这个呃是说什么的呢?就当我们访问某些站点的时候啊,访问某些网站的时候,有些资源我们是可以看的,但有些资源你需要登录以后才能访问的。你比如说淘宝吧。你不登录也能打开淘宝的首页。但如果说你要收藏某一个店铺,或者收藏某一个。商品。或者你把它要要要要加入到购物车,那么你就需要。登录。所以。我们现在啊,就来实现这样一个功能。使用过滤器来实现这样一个功能。对于有些资源。需要登录以后才能访问,如果你没有登录就去访问。
01:03
自动让你跳转到登录页面。OK,现在我们来写这个代码啊啊。12。Permission filter。咱们先来一个。JSP。index.jsp这个呢是不需要登录的index。无需登陆。Jake。刘。来好,我再来一个页面,比如我这儿有一个,比如叫什么啊。
02:11
User list啊,所有登录的用户,你要想浏览的话,那你想想你作为管理员你是不需要登录啊,这是。啊,用户。浏览页面。需要登录后才可访问。再有。再有,还有什么是需要登录以后才能访问的?我们登录是不是还应该有个退出啊,叫登出logout.jsp。这是不是退出?
03:09
是不是你退出,你首先你得登录才能退出啊。需要。登录后才可访问对吧?呃,页面我们。就写这样的三个页面吧,然后再来一个solid。来个我这个点北京。Power no点类名。我叫萨。
04:17
这样我们这儿就写上一句话,Response点。Get writer。哎,不要他了,直接写。直接写点儿。这是someet。需要登陆后才可。问,不过你需要注意这有汉字啊,所以我这需要写上response.set character,不是character啊,Content type。
05:08
Test itl。Utf-八,OK。哎,这样的几类资源。那当然我们还应该有一个登录页面是吧,你登录。JSP。捞个人点儿茄子皮。登录是什么?登陆是什么?登陆就是把。用户信息写道。Session里面就有登录了,我就直接这样写了。session.set attribute user。瑞好了这就登录了啊,那写上这个。
06:06
登录成功当了lockout退出是什么?想想退出是什么?什么叫安全退出了?Session失效了。对不对,Session失效了,好,我们。先把结构搭起来了。对不对。趴下。这无需登录的是吧,可你现在看啊。Use the list.j。这是。
07:00
需要登录以后才能访问,可现在是不是就就能直接访问呢?对不对,那现在我们得看一下啊,怎么样能能限制了。怎么样能限制了?就是。看着。Index。呃,User list这俩页面,你说这俩页面。他怎么样能能让他。需要登录以后才能访问,而他随便扔的访问呢?这个这个这个怎么实现。诶,这时候啊,我们通常是采用这种方式实现的,我这里边儿规定所有用户提交的请求。是以,比如说以user开头的。
08:01
那么你如果是以U开头的来访问的资源,都需要登录以后才能访问。以U开头的。那什么意思呢?你看他我现在访问那个soet,我们大家知道啊,Some需要登录以后才能访问,可现在是不是也能访问呢。我现在的,我现再说了采用的解决方案是。User开头user开头什么意思呢?是这样一个意思啊。看好。我这儿建一个folder文件夹。叫什么,我就叫优。谁登录需要登录以后才能访问呢?它放进去。还有它放进去。
09:03
还有谁?So,那里我就得找他注册呀。注册信息。这儿我让他悠的。有点好,现在啊,没加这个过滤器。所以现在啊,没有。还没有说是登陆以后才能访问的情况啊。但是我让大家先看一下什么叫以U开头。这个uri以user开头,你看看啊,我现在要访问谁?你要想访问这个some,是不是就得写成这个样,User some是不是这样?你要想访问那个user list是不是需要这样?你要想访问那个logout是不是user?
10:09
对不对,可是你要是访问谁登录呢?老个一他不用U的。对不对,你要访问。烙个印呢?啊,不是login index呢,他也不用登录。对不对,所以这就区分开了,这样的话,我们这个。过滤器就好些了。好,看着我怎么来写。Alta。包先改一下包。FS。A permission。
11:11
所有轻巧统统过滤。我这用的是汤不开的酒啊,所以这些方法我就都删了,你要用的七肯定不能删是不是?好。看着我现在想获取谁想获取这个东西,比如user,是吧吧。Solid,我就想获取到这一段。这这个是什么呀。
12:00
这个是什么?啊。这个。是我们的。看着看着看着里边有这个东西啊,当然我现在需要你看啊,Request点儿get。这里面没有。So the pass。没有。需要把它强转。强转成什么?P solid request IQ?Request。强转一下Iq.get。看到没?Solid pass,我们可以看一下这个solid pass到底是个什么啊?
13:02
我们先看一下它。So。好,我们看一下啊。就他直接刷新。是谁,是不是就获取到这个东西了?OK了,那有了它了就好说了啊。会到solid pass。我来判断,如果。哎,不对啊,写错了,如果solid pass.start with,谁呀?
14:02
杠人。如果我们的solid pass start with-user。就是以杠U开头的,那就说明什么,你这个请求,你要做的这个请求,或者说你请求这个资源必须要登录以后。才能访问。那这时候我就得。就得看。Session里边有没有?那个user。Session里边有没有那个user啊,那我就来判断一下,先获取session session Iq.get session,你注意我要我要从里边获取数据的。用force的啊,加上false。获取是不是不是放数据的啊,我不用去把它创建。
15:04
这是获取session对吧,获取session。如果。Session不等于空。诶。session.get attribute。这获取到的就是user。要的。哎,怎么有呢?好,紧接着呢。哎呀,紧接着只要user不空就行了啊,我们也不用非得判断user等于了啊,如果user不等于no。
16:05
如果user不等于闹干嘛?不等于那。他应该继续往后走了。我们现在权限啊,不等于闹,那我现在如果说他等于闹,我们想一想啊。如果有。咱们怎么样判断好一些?三不等于空。如果三不等于空。我就执行这个。那要塞身是空的。那这儿呢?如果三生不以优字开头,是不是就直接?直接往后走了,不需要。加个入世啊,若pass。
17:04
一-user开头,那么。这个请求。的资源必须登录后才可访问,也就是登录以后才能放行。对不对,那要没登陆呢。没登陆它就不能放行,所以我这登陆以后,如果U这不等于空,我就可以放行了。怎么就放心了,这就是放心啊。不等于空就放行了,要等于空呢。邓一空。如果这是空。
18:02
你是以user开头的,但是呢,又没登录。那你就得到哪儿。你就得到。登录页面了。它是空的,那所以我这儿到登录页面。Q.get。Requestpa登录页面。老给。第二对吧。他往后走了,你注意啊,这儿这儿也有个问题,什么问题,他往后走了,一会儿还会回来呢呀,不要忘了,他一会儿还会回来呢。那所以这个东西。你要你要一回来。
19:03
那这个东西就会执行了。它就会执行,所以我们这儿啊,应该给它加个else。这样他回来他也他也不会执行他呀,你如果是空,哎,我就怎么样,直接往这边走了。我就直接就往这边走了,往这边走了,我就我这边就结束了。这个就结束了啊。啊啊啊。那这儿呢?如果以它开头是吧。要不以它开头,这儿最好我们也给它加上else。被他开头那资源就可以直接访问呢。
20:00
对不对。RA。Solid pass。不以杠user开头。那么。其所访问的资源。可以。不需要登录即可访问,但是不需要登录的,所以你就直接直接放行就行了。对不对,这儿也加上。RA。User。喂,Now。则说明没有登录。
21:03
那么。跳转到哪儿啊。登陆页面。说user不为呢?则说明已经登录,则。放行对吧,这不就放行了吗?那还有他那呀,如果三身是空的。如果session是闹呢,你看这个还。写起来啊,这个判断还是比较麻烦一些的,Session如果是空,Session如果是空,那你肯定没登录对不对。
22:00
若session不为now。这。啊。需要判断。User。若session为,则。一定没有登录。那么。没登陆,那么。跳转到。登录页面,所以这儿应该再添加一个给谁。给这个。
23:00
就给这儿。再添加一个。所以他这个逻辑关系啊,还是比较复杂一些的,是不是好,那我们看一下啊,我们看一下。重新发布了。看好,我现在访问some登录了没有?没登录啊。呀,哎,捞个印。这写的哪个地方写的啊。 login.JSP啊。有没有了。没有了是吧。
24:11
关了。你看。Yeah。到log他是不是到log了,到log它是不是就登录成功了,就登录了吗。对不对,这这个这个咱们写的这个不好给大家演示,这个就不好演示了,咱们这样。Log in,他直接就登录了,嗯,咱们来个表单吧。来个表单,哪个里边有表单,这个里边有表单。这样。这是正儿八经老。是吧,登录那这儿插一个solid,我们给它来一个solid。
25:04
不就再写一个solid吗?So。这个是。Log in so。哎,这还真是post是吧,好。啊,咱们。获取请的参数是吧,Get parameter username。这个叫有吧。然后我把这个U再给它放到我们的session里边,request.get session.set tribute user user,对吧,再来一个response.get right.print line。
26:24
嗯,这样我们user。老人是个啥?登录成功了啊好啊,这样可能就好一些了啊。这样我们演示就。更更容易。理解了。好,走。
27:00
没登录,他让你去登录对吧,登录我们现在不管中文乱码问题了啊,我们就用拼音的。好,我现在登录了。李四登录成功,登录以后我现在访问谁?User。下边有个user list。没问题吧?是不是?现在我在。当初。退出去了啊,退出去以后,我现在再访问那个user list.jsp行不行不行了吧。是不是到这儿了,你看这样的话,我们这个权限控制是不是就实现了。这就是我们说的什么权限过滤器?
28:01
啊,相对他相对来说还是比较简单一些的啊。OK了。那这样的话,我们的。Filter过滤器就说完了。
我来说两句