00:00
大家好,上节课呢,我们完成了后台的一个登录的过程,比如说我们用艾123可以登录进来。然后用可以跳到前台后台退出都是可以的,但是我们现在如果退出了,你看。我们退出,退出成功,我们再进来直接进入后台还是可以的,对吧,所以这个时候我们前台,那我们在访问的时候,比如说用户的呃,个人中心,比如说他的订单,他的购物车,他的留言这些需要登录去判断,那其他页面是可以访问的,而后台。是没有用户没有登录,是所有的文件都不让他访问的,所以呢,我们需要用过滤器去拦截一下,但是如果我们所有的都拦截,你比如说。像我们后台。呃,里边像这CS文件的字体啊,图片呢,有可能也被拦截,另外如果我们要将斜杠它后边的星用这种方式所有的拦截的话,那么我们本身的登后台的登录页面,它也是包含在星里面。
01:02
那也被拦截了,所以我们得排除什么呀,排除这个音。那个音点。JSP这个文件不能拦截,因为它得做登录处理,所以直接清还不行,对吧,然后另外呢,我们一点这个提交。这个啊,JP提交,我们提交到哪呢?提交到他下面的艾,提交到这个位置。那这个位置这个文件我们也能也不能拦截对吧,所以这些是都不能拦截的,那我们看一下,我们在前面做呃程序的时候,就写了一个规律,你看什么呢。所有后台访问都是爱德密下个信,爱德密下个信,爱德密下个线,爱德密下个信,那本身这个呢,呃,爱德密个音,你看啊,后台我们可以,你要是觉得这个名字不好的话,或者是不好处理的话,可以给他改一个,改一个名字都可以。嗯,这块是。在。啊老后台艾米老,你看我们可以改个名字,换一别的名字,但是呢,我们其他有下划线,这个没有下划线,你看我们其他的所有的这里边。
02:06
呃,这是前台访问的啊,我们不管,你看后台访问的,呃,用户添加是不是都有爱密用户下划线的,那咱们看一下匹配这个字符串就行了,好我们做一个过滤器去完成,那过滤器过程呢,其实呢,我们先把这些全关掉,不然的话大家看的文件太多看不到。在注册的时候,我们呃用过这个过滤器,对吧,我们跟这个写法是一样,我们来写一下新的过滤器,还在这个下面新建一个,记得是新建的是过滤器,那我们这个过滤器名字我们可以呃随便叫,那我们可以比如说叫做呃艾特密。我给。我们也叫这个名字吧,呃,后台登录的。然后呃,你可以在外面的文件里边。它可以过滤到多个呃URL地址,你可以在外边插M文件,里边一个一个去写,比如说可写外边插M文件是一样的写,比如说呃过滤器的名,过滤器映射哪个地址等等,那你如果想拦截多个文件,那你一个一个去写,当然了也可以用注解的方式,那注解的方式什么样的呢?比如说。
03:12
访问所有mana斜杠下边星。只要是以这个目录,咱们后台你看。都是以这个目录开头的,对吧,星就可以拦截了,或者是星点JSP。所有的星点GSP的文件都会被拦截。或者是这样,以这某某一个文件,比如说inex的点GSP,或者是指定某一个文件,或者是指定某一个控制器,某一个so类都是可以的,但是呢,他们有这种写法,比如说咱们已经写出对了,艾特你下划线行,如果有这种写法的话,咱们。以爱命开头的星,所有的拦截就可以了,但是他没有这种写法,但是咱们可以怎么用呢?用爱用啊万星的方式,所有的拦截,然后咱们在这里边来去判断。那写法呢,跟前面咱们写过的注册器很相似,所以我就把这个全部粘过来,然后咱们一点点去改代码。
04:09
全部找过来。当然了,这是注册验证的一个过程,那咱们这里边一点的去讲。啊呃把父类呃转换成子类才能调用电缆方法,然后设置自由基,这都是固定的这种写法,然后获取参数呢,当然你想判断用户名为空啊,这些你都可以留着,当然你不需要留着呢,也可以把它怎么样把它全去掉。咱们现在就写最主要的流程,这个不是咱们重点对吧,然后通过30里边,呃,获取哪个参数呢。过去咱们在里边,如果是后台登录的is艾。这个对吧。咱把这块做一个,这是一个呃,标记位对吧,F flag是一个标记位。然后我们需要啊。做一个判断。如果是他。
05:00
访问这个下边的所有的文件,先判断怎么着,是不是。登录的对不对,但是呢,你先还不能判断是否是呃登录的,为什么呢。因为我们本身的,如果你这么上去,就是是不是登录的,先过滤掉我们本身的那个登录的界面,也就是。爱的命啊,这个。I user in。就是这个。我们也过滤掉了,对不对,所以我们这块得先怎么呢?先排除我们不要的就是不过滤的文件,我们只要我们过滤的这样的文件就可以了。现在我们是所有的都拦截了,包括本身这个登录界面也拦截了,我们试一下,你看一下我们所有的现在都访问不了,你比如说现在处理这个拦截,呃,我们让他假如说是返回吧。我这先判断。呃,把这些先去掉吧,一会再讲。
06:00
你知道我们假如说在这块啊。现在所有的。都被拦截了,我们后台的所有东西都过不去,这个代码被执行不到,我们删掉。现在我访问一下,你看本身那个高。哦嗯,控制器和一样,我们写完之后得干嘛呀,得重新启动一下。那我这块没有提示啊,你看。都拦截了,我们连登录界面都进不去了,对不对,所以我们要把它排除掉,排除掉这个登录界面,那我们看一下我们怎么写才能够排除这个登录界面,当然这个登录界面不光是要把它排除掉,还要把这个登录界面提交的位置,这个也不能拦截。不是,呃,登录或。那么我们艾密漏音这个也不能拦截对吧,如果这个拦截的话,我们一定假如登录界面过了,那这里边也拦截了,那也不要我们处理登录,所以这两点排除。
07:00
那这两排除之后呢,其实我们下边的字体文件,CSS文件,比如说。我们现在这个下边的啊,我们找一下什么文件啊,你看。呃,下边比如说CSS里边有个慢点CS。A。第二。你看。然后那呢,也都被拦截了,都访问不了对不对,所以我们这里边得排除多个文件来看一下怎么个算法也比较好。首先呢,我们在这里边啊。先获取这个就先获取到吧,那我们得需要通过这个req请求里边,这里边我们有一个方法叫做。你快。U。我们获取的这个这个是一个。我们起个名字叫做re ET加信U。
08:04
我们来直接打印。我们看一下获取这个。UI是什么?哎,我们随便访问一个一个文件。获取到的是这个路径地址对吧,里边是不是有,那我们继续。我们再获取一个什么呢?我们再通过req.get con。我。在呃,就是CTXP吧,这边一个变量。我们再连接一下,加上。加上。嗯,比如说我们用紧紧分割一下再上。我们来试一下,我们又获取的是什么刷新。
09:02
这个没有编译,等待一下,或者是我们手中的啊,编译完成了,等一下编译成了,你上心点。你看获取到的是他这个路径。前面的这个路径看到了吗。前边的这个路径。就是内容pass的部分,也就是我们请求这个地址的。这个部分对吧。啊。这两个你看一下什么关系,是这个在这个内容里面包含的是吧。然后我们再取它的子字符串,把UI这个字出来。我们呃,在这里面re e,呃,Re ET,下划线,呃,U。这个里面的S。TR子字串,你看只字串把哪个取出来呢?看一下我们这个呢,把这个长度从这个长度之后的所有的字串都取出来,那我们乘上啊,Ctx pass,把它的长度取出来,LGTH。
10:04
然后给一个。字符串,我们字符串叫做比如说UI吧,这也就是获取到的我们UI,那我们再加上一个。顶角再加上我们的UI,我们看一下我们从这个之后取出来的是多少。一下。两下你看。我们把从这个长度之后出来,是不是我们这个。那这个字符串里面,我们再从这个字母串取出包含GSP的,对吧,那我们可以。呃,这么去写,如果uri里边CT包含使用这个,如果包含,你看 login.JSP的文件UI里边,如果它包含这个字符串,它就返回这不包含这个就返回点对不对,那包含这个的字符串,我们就让它比如说给过掉就行了,对不对。那我们能不能换一种思路线,这样的话得判断多少个文件呢?判断包含这个字符串的来,并且啊。
11:04
啊,或者并且或者。或者比如说包。报个音,或者包含什么什么CS文件等等等等,一个一个判断,那如果反过来写呢,大家可不可以啊。UI内容。如果包含。爱的命下划线什么呢?包含爱德密下划线,就包含这个组词,因为我们所有后台不想让别人访问的都是以艾德密下划线开头的,咱们写的时候就故意留的这样的一个符号,或者你起名,比如说S什么什么,点do user.do然后你新点do文件也都是可以的,对吧?啊,你看如果包含的说明我们的路里边,也就是后边字符串里边,如果包含,那么我们就干嘛呀。
12:01
让他通过,但是让他通过之前,我们得就得判断他可不可以对不对,那否则就不包含的。那。如果包含need的,我们判断他是否是登录的,登录的我们才会访问,如果不包含的,不包含need干嘛呀,我们直接叫他通过就可以了。否则我们加这个。这样的话,我们直接全部不包含这个的,直接全部通过,不管他登不登录对不对,而包含这个的我们还得做一个判断,判断什么,判断它是否登录的,那么就是如果谁呀,前面我们取出这标记了。Flag对吧,就是A音。如果它不等于空,并且f lag,它点啊,EQU等于。一说明什么?说明是用户是它不为空存在,并且呢,它等于一证明什么?证明用户是登录的,那用户如果是登录的,那我们怎么了?直接过不就完了吗?
13:06
直接过,那否则如果不是登录的,那我们只有告诉他一下,请你先登录对吧。房价。过来。好像还缺一个。这块请先登录。请。行。等。再访问弹出一个,然后我们这块直接登录的那个页面,我们直接跳转到LV。贱逼。看一下可不可以实现我们想要的一个过程。这条留着吧,打印那个。啊,我们直接访问看编译,通过编译完了。刷信你看这边就可以了,我们看一下打印的log in log就可以了,对不对,那现在如果他访问啊艾特你下划线,比如说就user用户添加吧,请先登录就过来后台所有的以爱密开头的。
14:12
都访不了对不对,比如说点P先登都先入了,但是如果我们是登录的爱。十。我英文写错了吗?如果是登录的。包含I,请进一下。太多了,你看一把,一个镜。爱德123。嗯。访问了一下这个。老个。它这里边有一个。我们再清除一下这过程,我们再访问一下。我先刷新一下这个页面。
15:01
这个访问漏音没问题,走到这了,然后嗯,判断里边不包含艾特密下划线,所以过来了访问的页面,然后我们输入艾特密密码123。提交。请先登录,你看我们这块。我们先分析一下啊,又回到这个页面啊,你看这是我们第一方问它是提交到这个位置了,到这个位置呢,这个位置又给转登录成功又给转到这个位置了。转到这个位置,这个位置应该是请求他又到这个过滤器里边来,又到这个过滤器里边来,呃,访问一下这个文件,这个文件没通过,然后又到这个,又转回到这个log JP是这样的一个一个过程,比如这个现在。没有,我们就是我们有可能是在。爱密音里边我们没有通过登录,没有通过登录才造成这个。也就是没有通过登录。如果标记位。会在it,这个没错。
16:03
呃,标记位,我们这打印一下这标记位就行了,看这标记位打印的结果是什么,我们在后边再加上一个。啊,比如说呃,I的符号,再加上f lag lag。看一下打印的是几个空?把这一下遇到错误一点点调试一下,刷新一下,刷新一下这块。啊,1 : 1完成,一完成你们刷新一下。自己刷新是空的,他没有登录对不对,然后。我们爱的命。123。提交。回来我们看这里边有没有登录的,都是空的,都是空的说明我们在30里边就没有什么没有获取到这个值,那我们找一下我们的登录的。那个文件老给你老给。麦那边艾德密劳这里边是不是登录哪块写错了,首先我们先判断一下是否。
17:00
过来了,到这个地方来了。我们sym.out.print打印一下。Username。加上。醒酒。加上PSW密码。我们再试一下。嗯。重启一下这个带了,后边有我们。刷新一下。然后艾力。123脚。进行弄。爱德123证明到这里边儿来了,到这里边来了,他应该是没有。用户状态。我们到这里边来看一下,他到不到这边来,如果到这里边来。就会把。这个值设上一,设上一之后,我们才可以让它再续进来,对不对,证明这个米兰截是成功的,我们在这打一下。好,听完了我们再刷新一下。
18:00
爱的你。123。123打了两次,这也进来了。Session没有设置成功,AI给你复制一下这个字符串,别到时候因为这个字串错了。好,注意一下。呃,因为在这边打印的是一直是为空的,通过请求对象里边哦。哎呀,这个方法写错了,咱们还在一直在这找。通过我们得通过什么通过,呃,30里边的。你看我们这块获取到这个对不对,获取到之后我们通过。A。TT。嗯。不是这个是因为我们复制的代码啊。
19:01
Session。这。你往前看。这回我们知道错误原因了,我们把前面的那些代码都可以,这应该都没有标了。这是调试的代码,那我们这块也没有必要了,这块也没有,呃,这个位置也没有必要了。这数是错,我们就看。好,这个我们再试一下。高新一下。老根一百一称老根音文件里边。这块有一个有一个错误。成倍里边不需要标记位字符串,我们应该。转成金片。跟它编译完成。没有错误。爱的你。
20:01
123。嗯,好,进入后台页面了,对吧,有爱的,然后我们看用户管理这些都可以了。都没问题,你看图片样式也都加载过来了,证明全部过来了,对不对,那现在我退出。复制这个地址登录的是可以看到这个了,比如说退出,退出成功,现在我再登录一下。请先登录后台的所有页面都进去了,只要是包含爱的密下划线的。这个都过来了两。都告诉我警戒登录,只有登录过去之后,123才能够正常显示所有的页面。比如说删除。都没问题对吧,这就是我们验证的一个过程,当然有很多种方法去写,这只是一个走了一个呃捷径的方式,让你后台去判断,如果我们有大量的权限管理,对吧,那我们需要在这里边一点点去判断这个权限管理的一个这样的过程,好,这节课我们就到这里,那到现在为止呢,我们整个的用户模块,包括用户的登录、注册,退出验证也都查了,那我们原来写的这个,呃。
21:06
给大家留作啊,原来写的这个用户添加用户啊,你可以像注册表单一样去那么一个验证的过程,那我们在你可以把代码再继续完善,像我们登录的这样的判断,你可以加上验证码,然后判断长度,呃,用户名和密码不同为空啊对吧?长度必须什么样的密码的,呃,安全性什么样的都可以去判断,对吧?那些就是玩自由串一个逻辑上的一个东西的流程,咱们都介绍完了啊,谢谢大家。
我来说两句