00:02
那么管理员登录。这个时候呢?还是哈,这就是一个具体的功能了,现在呢,等于说我们已经把这个地基打好了,上面呢就可以开始盖楼了,或者更换一个例子,就是说这个系统已经有了,在上面呢开始安装一个一个的APP。啊,这个时候就考虑的不是那么全局的宏观的东西了,在这个基础上呢,去做这个一个一个的具体的功能。啊,这个时候我们要考虑这个事,其实就范围就小一些了。还是说我们管理员登录的话,这个目标是什么。目标呢,就是。为啥要有这个登录的这个操作。啊,我们为什么这个人他得登录了才能操作,不登录不让他操作。就是我们得去识别到他的身份。我们得知道是,呃,假如我是一个项目,有人来操作我,我得知道是谁来操作我啊。
01:04
哎,所以说呢,就是我们要识别操作系统的人的身份。诶,然后呢,控制。他的行为。我们现在呢,没有加入权限管理系统那一套,所以说呢,这个控制行为呢,就是我们至少要控制它,有些内容必须得登录以后才能访问,不登录不让他访问啊,至少要控制到这样一层。哎,所以说怎么能识别到他的身份呢,你得凭你的账号密码,你得登录进来才可以啊,凭账号密码我才能够去识别到你的这个身份。所以说,这就是我们的目标。为了实现这个目标的话,我们看一下,哎,咱们的这个思路。我们登录的页面已经有了,所以说咱们从这个登录页面这儿开始说啊。
02:02
这个。这是我们的登录的页面。从这开始啊,这个可以缩小一点。呃,他会去点登录这个按钮。点登录这个按钮,就是提交这个表单,提交表单呢,肯定提交给我们的handler。找我们diner。Hunter。然后呢,这边叫做do login。那我们接收的话呢,咱们就可以去接收一个账号,接收一个密码。呃,这样咱们就写个账号,写个密码就省地方啊,不然的话,他这个花的太长了。接收一下账号和密码。那下一步呢,那就是说把账号密码发给数据库呢,去去去查一下啊。
03:04
这里边儿呢,你当然可以像我们以前一样查啊。呃,什么什么from。这个表,然后呢,这个where login count。呃,等于超模。And。User p swd。等于这个哈。这两个都传给他这样去比啊,这个当然也可以,我们现在呢,给大家介绍另外一种这个稍微时髦一点的做法啊。呃,就是我们把这个请这个操作呢,由这个service来做啊,这个叫做。我们让service呢,根据账号,根据账号把这个对应的din的对象呢,给我们查出来getin。BY。老康。
04:00
根据登录的账号呢,把这个命对象呢,给我们查出来。在这儿当然是给他,把账号传给他。诶,我想想啊。然后在这个service方法的里边呢。嗯。对不光传账号啊,我们把这个包括后边比较这个密码对不对呢,也让他放到service里边来做,因为这个吧,已经可以说就是业务逻辑了。也是哈,这个账号和这个密码,也是把密码也传给他。哎,然后在这个里边。他呢,首先先去调我们的。
05:01
嗯,我们可以用这个by example去查询啊,也可以去,呃,自己去再写circle哈,这个都可以select。如果是一个example啊。这里边儿就得传一个example对象啊,把查询条件封装到。一个对象。这个查询条件呢,就是根据账号去查。根据。账号查询我的命对象。诶,这个账号就是查询条件。然后那么查询到这个条查询到的命对象啊,其实在这儿就有两种情况。
06:00
我的命对象其实有可能查不到啊。如果说查不到的话呢,我的面对象。维。那咱就没必要往下走了。那说明密码都不用去比了,你账号已经不对了。诶,账号已经不对了。所以说呢,这时候咱们就跑一场。因为已经有这个异常映射的这个机制啊,咱们就抛异常,抛个啥子异常呢。哎,抛一个登录失败,一场login field的exception。哎,这边是我们就抛出。Log。Field exception。那这时候就是回头咱们得去自定义一个这个异常啊,抛这个异常,抛这异常,那程序就就结束了啊,就是这个service方法,这方法就不往后走了。
07:00
然后呢?这个方法如果他不为闹啊,这是不为闹。有的命令对象存在。啊,存在存在的话呢,我们就比较一下密码。比较密码的时候,我们就得这个考虑一个密码加密的问题。我们密码呢,不能够明文的存储到数据库里边。啊,这样的话,其实呢,比黑客入侵。入侵拿到你数据库数据,更危险的就是说自己内部人员他看到这个密码。监守自盗啊。是吧,啊,你比如说这个上硅谷是吧,咱们举个不恰当的例子,上硅谷办公室里边如果放了5000万。他也没放保险箱里边啊,这个事情是吧,那很快就没有了,对吧?啊,冒着极大的风险,我们也得把它给弄走是吧。哎,这个时候。好人,好人也得变成坏人是吧?好人也都会变成坏人。
08:04
你放后边行不行?完了,我被缠住了。不应该有非分之想。呃,所以说呢,密码是一定要加密的,密码是一定加密的,那既然加密的话呢,我们就采取这个加密强度比较高的方式哈,我们采取的是这种哈希。算法去加密哈希里边呢,具体来说咱们用MD5 MD5呢,其实它算加密强度不算强也不算弱。啊,就是你看我们。用这个能看出来。随便找个文件啊,随便找一个。别太大了哈。他无法访问。来一个这个吧。
09:02
就长的就是加密强度高,短的就是加密强度就低,大家还记不记得那天咱们看汤姆的那个。一屏幕那么长对吧?啊,那个就比这个又强度又又高很多啊,所以说这个就是说你看你的这个安全的级别啊,MD5呢,强度不算高也不算低啊,咱们就用这个来加密。这个加密的话呢。考虑这样一个因素哈,就是adin呢。嗯。我想啊,这个,哎,我们前面给大家介绍过哈希的这种算法吧,它呃不可逆。不可逆呢,就是说你不能够从这个秘闻。就是瞎写一个啊。这是,这是他以前那个铭文哈。你没办法通过密文反推回来这个铭文,这个做不到。所以说呢,不能把密码加密以后的密文解密了,比较铭文这个做不到不可逆。
10:01
只能是把铭文加密以后,比较这两个密文是不是一样。哎,所以说呢,在这儿就有这个哈,这边传过来的这个密码。这是din呢,是从数据库里边存去去查出来的。所以说呢,这个比较这个密码。哎,就是说数据库。密码和。表的密码比较。我们标记一下颜色啊,数据库。一个是来自于数据库。一个是来自于表单。这两个呢,去比较一下。既然是比较,就有两种可能性。哪两种可能性?一致和不一致,哎。如果不一致的话。哎,这边就咱们就。泡一勺。
11:03
其实你看这个。这个这个程序哈,那他这个机制呢。抛异常是一个很好的机制,它好在哪哈,就是。呃。你上层调用下层的方法,相当于呢,你上级给下级这个去安排任务,让你去做。但是呢,你看这个Java呢,它允许下边抛异常,就是说下边完成这个任务过程中,他遇到困难完成不了,他可以通过抛异常的方式告诉上边。他并没有说,上面交给你的任务,你必须给我完成。完不成你就去死。对吧,啊,你看那个陈胜吴广为什么造反呀。派他们征集的民夫是吧,一起去一个到什么地方去修商城还是干嘛。半路上遇到大雨是吧,然后呢,这个时候其实就耽误了这个行程,那完了,这个时候秦国的那个时候的法律你。迟到了就是你不去是死,你去晚了还是死?
12:04
那你就那你已经逼把人逼到这个份儿上,那只能是我们是吧?陈胜吴广说,王侯将相,宁有种乎是吧,哎。这样就造反了。所以说呢,就是这个你得从上往下是吧,有通道,从下往上呢,其实也得有通道才行,高压锅是吧,高压锅里边压力很大,但是你还得有个口,你得给它跑气啊。啊,你下边在这儿烧,上边这里边儿没有地方给它跑气就爆炸了。哎,所以说你看这个八卦里边呢。有一卦叫,这是乾卦。啊,推演到64卦呢。有一卦,这是上面是天,下边是地,还有一卦呢,上面是地,下边是天。I。哎,天和地反过来呢,并不是乾坤颠倒啊,是说这个天地交融啊,风调雨顺。所以说唐太宗李世民,他为什么是千古明君呢?是吧啊,他能够纳谏呀,对吧啊。
13:06
这个道理都是相通的。你生活中的智慧能够帮助你去学编程,你从编程里边学到的智慧也能够去帮助你去走好你人生的每一步,是吧?啊,就想算命的下课找我啊。啊。本本半仙,可以给咱们班同学给八折优惠啊。啊,所以数据库密码要比较不一致的话呢,这边就抛一场啊抛一场。就就最后就抛异常,继续往后抛走这个异常,我们处理的这个机制。处理机制哈,刚才按错了。就走这边的啊,这是提前我们已经准备好的那一套。嗯,然后的话呢。呃,如果一致的话,那么这个你看呃,账号也对,能查出来我的密密码比较完了也是一致的啊,那么这个时候呢,你看我们就可以去干嘛哈。
14:13
就可以返回了,这个得in对象呢,从数据库里边查出来的,这个就是OK的啊,这就是我们可以用来登录的,就把这个in对象返回。把min对象返回。把它返回以后呢。那就返回给谁了呢?这返回是返回给这个do login哈,返回给他了。返还给他呢?这个怎么画上去哈。嗯,就反正下一步吧,就是在这里边呢,他把这的命对象呢,放到三生域里边啊,把他去放到三生域里边。这个拐弯拐不过去了哈。
15:02
咱们就放这哈。法。从数据库查询得到的密对象存入30。有办法。拐个弯。哎,漂洋过海来看你。哎,返回,呃,那这个时候呢,其实这个对,下一步呢,其实就是这一步在做完了以后呢,就跳转页面了。呃,跳转页面呢,是跳转到我们后台主页面。后台主页面是谁呢?这个我们看一下啊。在圆形里边是这个闷点GSP,闷点H毛。就来这个页面了啊,跳转到后边就来这个页面了。
16:02
来这个页面呢,其实也不需要带数据,或者准确的说呢,是不需要用请求域去带数据啊,这个这个地方呢,我们在这儿要显示一下用户的昵称,这个是session域带过来的。哎,所以说呢,这个其实我们不需要再做什么额外的操作啊,他这个这个就自然就能够带过来。所以说呢,这边其实这个来这个页面哈,我们也是通过我用controller过来的。啊,因为没有什么数据要带啊,也是通过view controller过来就好了。就是这样写一下啊,这边通过controller。
17:01
行,哎,这个基本上咱就说差不多了,对这里边儿有一个问题哈,就是说。进行密码的比较,我们要加密密文。呃,不,铭文加密以后比较的是密文。铭文加密后比较密文。那就牵扯到一个怎么去给他做这个加密这个事儿。这里边儿呢,我们得需要去,我们写个工具方法。哎,我们去创建一个MD5加密的工具方法。这就这就OK了啊,这是我们整个这个一个机制。然后后边看这里边需要做,哎哟,需要做哪些事。
我来说两句