00:00
好好,那我们下边来看看这个十天免登录这个或者叫十天啊,这是记录密码,看看记住密码这个功能我们怎么来做的,他的需求就是这样说,用户每次来输用什么来使用他这个系统的时候,都得输账号密码,那有的时候账号密码比较长,所以他输的时候,他想比麻烦,他又准备这样他记录密码,知道吧,选中记录密码,然后如果记住密码了,让他点登录,如果登录成功了是吧,如果登这个,你比如说我们在项目原型上来给他演示,就是这个地方来输入用那个,他现在每次输入太麻烦,他就点那个选上之后一点登录,如果登录成功了,好,下次再来,再来的登录页面,再访问登录页面的时候,这个他上次输入的账号密码,然后呢,包括这个地方都应该给他显示上,并且给他填上,给他填上,并且这个地方给他也给他选中知道吧,然后他所需要做的事。
01:00
那可能这个地方的话,他就可以什么直接点个登录按钮,这个他不用自己输了,他也不用点这个,然后或者一按个回车,这样的话就登录成功知道吧。十天之内都可以是吗?每次十天之内,只要是来访问的登录页面都是这样。账号密码都给他自动给他填上,不管是哪一个人,只要他上次登录,登录的时候选中了记录密码,在十天之内他再访问登录页面的时候。他拿到的登录页面,我们就给他自动填上他的账号密码了。就不管是哪一个人,他只要上次登录的时候选这个记录密码了,他下次来访问登录页面都是给他该填的填上,该选的选上,他只需要按个登录按钮,或者是按个回车键,那么他就可以实现登录了,这种呢,他这个需求知道吧。所以下边呢,我们就准备来做这个事了,那做这个事儿大家应该怎么来做呢?这样,那我们分析呢,分析一下吧,分析的话就这样,大家看他每次来登录,假如说上次记录密码了。
02:11
然后呢,他下次来登录,他肯定访问登录页面,然后他拿到的登录页面是我们给他的,然后我们就自动给他填上他的账号密码,不管是哪一个人都这样。所以大家其实这种方式实验的话,其实是很难的。真正做的话是很难的,对,怎么难,但是你想一想啊,咱们啊是么,GSP页面一开始运营咱们后台的,这你看这地方你看咱们一块分析下啊,那会实现记住密码,记住密码,其实记住密码很难实现,怎么实现,但你想大家这样每一个用户来访问我们的系统时,都来访问我们这个页面叫 login.JB肯定通过CTRL来访问,但我们这个的不管通过CTRL还是通过别的,总之他每次来使用我们的系统都来访问这个登录页面。
03:07
不同的人,不管谁谁来访问系统,都来访问这个页面,那来访问的时候是这样。不是来访问的时候,那他只要我们都判断一下,他是不是上次这个人上次登录是不是记录密码。如果记住密码了,我们就什么他来访问这个页面,我们这个页面肯定在后台运行,知道吗?那在后台运行的时候呢。我们就给他填上用名密码,并且那个拆boss也给他选中,知道吧,每次都是这样,不管是谁访问,那我都给他访问,他只要记住密码了,我都给他,他访问这个的时候我在后台,这是在后台。嗯,这个在后台,我们是可以他来访问,这个叫用户访问,用户访问这个页面,然后呢,我们在后台干什么事呢?我们后台要给他返回这个页面,那如何返回这个页面,那我们肯定要运行这个页面,那运行的时候怎么运行,那就把它运行出来一个HTMLHTML的一个页面,然后给它返回到浏览器,那运行HT的时候怎么运行,那我们肯定是什么,看看它是不是上次记录密码了。
04:30
如果上次记住了,如果上次记住密码,记住密码我们应该给他填上,给他填上自动自动填上。自动给他填上,然后呢,账号和密码,那否则啊否则否则如果他没记住,那么就不填吧,那对那就不填,其实这个什么,那就不填知道吗?就我们给他生成这个A填给将来给他返回知道吗?他一访问我们在后台运行给他返回,那给他返回的话,那这什么,那就生成这个ATM,那生成这个ATM2,那用户就什么。
05:13
就拿到了啊,用户就拿到了,那就返回到浏览器,浏览器显示了,浏览器显示,那显示到时候如果我们自动给他填上了,他得到的肯定是填好的。如果是吧,给他没给他填,那他肯定得到没填吗。那这个时候我们由于后台什么已经判断了,他是不是上次记住了,如果上次记住了,那就给他显示知道吧,如果上次没没记住那什么,那就不给他填,就这个意思知道吗?所以大概对于我们而言的话,他访问这个地方,这个跟我们没关系,就看他选不选拆个包SS了。知道吧,这不是不是他他每次来访问这个log in JSP,那它输入URL直接访问就行了,那我们这么这个返回这个页面的时候,我们也不用管,直接浏览器就显示了,我们管的是什么,我们管的是这个地方,我们管的是这个地方,他每次来返回登录页面的时候,我们都要判断一下他是不是上次记录密码了。
06:14
是不是上次记住密码,如果上次记住密码了,就给他填上账号密码,然后呢,否则如果上次没记住,然后呢,就不给他填,然后返回一个登录,只返回一个登录页面就行,返回然后它就显示了,知道吗?关键大家这个地方,这个地方我问你了,如何判断他上次有没有记录密码。就如何判断打胖子。还得谈是。上诉权问责人。对上判断他上次登录的时候是不是是不是选中那个叉boss了,是不是这吗?那关键是。
07:02
他上次登录的时候是不是选中拆包了。那他已经把那开包撞了,提交到后台了,提交后台,但是上次登录都已经是好几天之前的事儿了,他这次又来访问登录页面,我怎么知道他上次记没记录呢。对,是不是判断什么判断他有没有那个cookie是吧,那有没有cookie。那你是不是得判断,那那那个空位什么时候给他写呀。在他记录密码时候,他创建一个下次来,就是对他上次来的时候,如果登录的时候,如果记住密码了,是不是我们要往外写cookie啊,写cookie知道吧,为什么要写cookie,就是为了什么。下次什么再来的时候,再来的时候,我们判断他上次有没有写过枯萎,是不是这个意思,就是这样。
08:06
知道,这时我们才判断它,知判断它就是什么,才往外写枯位,然后来判断它有没有枯位,有枯位记住没,并且没有过期,是不是记住,知道,如果没有库位是不是就说明不记住,就所以说大家这个地方,我们这个思路应该是这样的,你看这样,他每次访问登录页面是不是要给他显示用户密码,我的思路应该是这样判断它。判断他什么判断他上次有没有记住密码,那如何判断上次有没有记住密码,由于上次访问的时候有可能是几天前的事儿了,那我就要什么在上次他登录成功之后,来判断他有没有记录密码,如果记住了,为了下次好判断,在上次登录的时候,也就说在每次登录成功的时候,都看他是不是选记录密码了,如果选了往外写扑克。
09:02
那么如果没选就不写库位。这样下次再来的时候就看看有没有库位,有记住给他自动填上,没有不给他填,大家能理解这个意思吧,就长这是我们的思路,大家,所以大家你以后开发的时候,你也要有这种思路,知道吧,这种思路应该说是最难学的,是学软件开发是最难的,其实软件开发语法不难,你要真正语法不难,一点都不难,而且语法都是死的,你学会一个语法用一辈子,但是这种思路是必,而且是变化的,是抽象的,是虚的,有的人你都你都看不见,摸不着,就这种思路,你到网上找一些资料,你找一些书籍,这种思路都没有人。没有人给你写出来,没有人写,你只能自己想。而且这才是软件开发的最重要的内容,这是它的精髓,知道吗?
10:00
啊,这是它是一个合格的这种程序啊,我们说这是公司需要的这种合格的程序员,光记语法,公司里边不要不要这种程序员知道吧,所以大家你要记住这个,所以我们这个思路就这样,如何判断上次,那么知上次是否记住密码,那我们就是这样,我们的思路就这样,首先这样,我们的思路就这啊,我们的思路就样第一步,那么第一步就这样,然后呢,上次这种或者叫每一次,那么登录成功,登录成功。然后呢,都得什么看判断判断是否需要记住密码是吧,是否记住密码知道都得判断,就如果需要,如果需要记住密码,则往浏览器写cookie,写cookie知道啊否则啊否则啊否则不鞋啊否则不写知道吧,然后呢,大家看这是我们说那如果什么这种。
11:05
这次主播要下次下次登录啊,下次登录时再访问登录页面,下次登录时登录判断判断有没有cookie,有有没有cookie。那么下次这个该用户有没有酷配,有没有酷配知有没有酷配知道吗?有没有库费,就如果有啊如果啊有没有库费。如果有则自动啊填写账号和密码和密码啊,然后呢,否则如果没有,没有则不行。这是我们这个做的这个事,知道吗。这是话这个思路,好,下边我们就准备来做这个事儿,那做的话,那肯定是上次登录成功,也就是说每次登录成功那一块,我们还需要判断他是不是记录密码,记录密码往往写库位,不记不写是不是这个意思,这样所以大家我们这个地方,他上次登录成功,不管哪次登录成功,肯定会执行我们这个代码。
12:15
如果登录成功了,在这个地方往外写付费知吧,那肯定登录成功了再写,登录失败了写没意义,知道吧,所以在这个地方来判断是否记录密码,那么这个地方来如果,那么如果需要记住密码,如果需要记住密码啊记住密码,然后呢则知吧,走登录成功之后知往外写cookie,往外写cookie啊写cook就让我好,这时我们往外写cookie,那往外写cookie大然这个cookie的值是什么?随对给值枯给值随便写,那这个这个就有问题了。
13:00
对,那估值这边写他下次来的时候。那我给他自我要给他自动填上账号密码,那我那个账号密码,我怎么知道,他下次来的时候,他的账号密码是这个是这个。账号是这个密码吗?下次来说皇。那下次来的时候,我怎么知道是哪个用户呢?是不是不让往外写cookie,这个cookie的值还得是什么?就是他的账号和密码,他下次来把酷位给我带过来,带过来的时候我直接正好拿到了,有直接拿,拿到之后呢,就直接给他显示就行了,大家能理解这个意思吧,就这,所以不但往外写库位,而且这个库的值就是他的账号和密码。然后呢,下次来他给我带过来,带过来之后我直接什么就给他显示到他的登录页面上面就行了,能理解这意思吧。
14:00
对,就这意思,你知道吗?所以我们说这个酷位的值,我这个地方还得给他整,还得给他再继续来往外写,不但要什么往外写枯位登录时候不但写cook位,而且而且cookie的值,而且cookie的值必须是,然后呢,账号,该用户的账号叫老印艾和密码PWD知道吧,这样他下次来的时候就有了。就有了,那我们写的时候就写什么,而且而且给它显示的时候。那说如果他记住密码,而且显示的时候就填写的时候填写的,填写的是什么?是他下次登录的时候带过来那个cookie的值,大家能明白这个意思吗?对,写填写的是cookie值。
15:03
这样是不是正好,一个是判断他这个cookie的值,一个是判断是不是记录密码,再一个如果记住了,就直接能拿到他的账号密码,能明白吧,能理解不对可以啊,但每我们说每一行代码都要能理解,语法不是最主要的,你要如果把这个思想,把这个流程想明白了,语法都是最简单的,知道吧。所以大概我们这个地方,我们就这,所以下边再看往外,我如果需要记住密码,往外往外写酷盖了,往外写酷位,这个酷盖呢,就是他的账号密码知道吗?所以大家那如何判断他是不是记住密码呢,在这个地方。但是往往我我要往外写库位了,如何判断是不是记录密码。对,是不是咱们有一个参数,哪一个是不是这个参数啊,这个参数他每次登录的时候,把他那个拆bos是否记住密码的check box状态给我们提交过来了,那个状态就是check的属性值,来看看它是true还是false,如果是true说明这个地方它选中了。
16:09
那说明要记住密码,要记住密码是不是往外写库位了,对往往写库了,所以说大家看了就看它是不是等于出,那看它是不是等于出,咋看懂。对,是不是按字符串来处理的,我们都是对按字符串处理,那就看这个出入,这个字符串是不是等于那个变量,是不是这样的,那如何判断两个字符串是不是相等呢?对E库在Java里边用E库明白吗?这样的,如果是出往外写cook费了,那往外写酷会往外写什么,那cookie就是什么,就是账号密码往外写就行了,那一个账号一个密码,大家我们最好写两个cookie,两个cookie这样将来以后获取的时候好获取,知道吧,如果写在一起的话,以后获取的时候不太好获取,获取完了之后还得什么,还得还得分割,所以我们这个最好往外写俩库费就行了,那写俩库位,一个会的值是账号,当前这个用户登录成功的这个账号,一个酷IE是密码,知道吗?所以那下边往外写两个cookie行了,一个是账号一个密码,那往外写cookie咋写?
17:16
六对cookie大纲,那这就具体的语法了,对我们来说是最简单了,对直接6COOKIE,我说这些都是死的东西,这都是死的东西,这是最简单的,知道吧。六个cookie cookie里边是不是有两个什么,有两个这个,这个构造方法里边两个新参,两个新参,第一个新餐干什么?对,是那个key或者叫cookie的名字,我这个随便起了,我这个假如说这个cookie是保存账号的,我也叫log in I吧,后边呢。User表。对,这个是不是那个cookie的值,Cookie值我们要把那个什么当前用户的账号是写在外边,那就谁啊,就什么 login.get艾是不是这个意思,就这这个把当前用户的账号写到,然后定一个变量来保存它就行了,然后呢,这个叫CE,一定一个变量来保存,知道了,所以大家要跟上,跟着我的思路走,知道吗?这样的话我们就生成了一个cookie了,明白吗?这个cookie的名字log in X,然后的值就是当前登录成功的这个用户的名字,这个账号名知道吗?
18:25
好,这样的话,那我们这个需求说了要记十天,记十天什么意思,对这个什么cookie,我们说他什么在十天之内,用户如果是再访问登录页面,能够把这个cookie给我带过来。知道吗?那如果超过十天了,他如果不来,是不是这个酷位在浏览器会让他自动的删掉就行了,删掉他下次来就带不过来了,你道吧,那如何让他什么在十天之后自动的删了呢?对赛给他设置一个最大生命周期,哪一个对markx age吧,它这里边给他一个指定十天的时间就行了,但是这里边这个单位是秒。
19:06
对,把十天转换成秒就行了,那十天转成秒咋转啊?乘以24,这是不是天了?再乘以60是不是分钟了?再乘以60,这是不是秒了?对,这是十天,这是十天这个时间,这样的话,这个枯萎从写过去之后开始倒计时。如果十天之内不来访问这个库位会自动删了,删了那再来就带不过来了,知道当然重要,当然十天之内就可以带过来,十天之后就带不过来了,知道吧,好,这是我们知道,那这个酷克就生成了,生成完了之后把它写到浏览器咋写啊。怎么往外辛苦快?对,怎么写不会。对语法也别忘了,对语法,语法忘了问题就严重了,是吧?就往外写库,对象生了往写库会咋写?
20:05
对,通过哪个对象往外写,是request还是response?对,往外响应了,往浏览器写数据了,是不是就响应数据啊?对,找response request是来的,是从浏览器来的数据,来到服务器的数据,把服务器的数据往外写,那就response,所以找response,找response这个地方注型response。主给你来一个,那这个地方随便来一个吧,这个地方来一个WHTTP知所以大家这些要中要理解它往浏览器返回数据了,那你说返回数据不是一个页面吗?返回cook给cookie也是数据也是往外返回的是吧?然后呢,通过这个方法,通过方哪一个方法往外写啊爱的cookie把它写过去之后,Response将来响应信息回到浏览器,这个库萎会自动带着写过去了。
21:02
是吧,Cookie是随着响应一起回到浏览器的,知道吧,这是一个cookie就写完了,下边这是这只这是只是一个账号,那那个密码也是一样,再生成一个cookie,把往往写密码来一个留一个cookie,然后呢,这个地方来写,那这个什么这个也给他起个哭鬼起个名字,我这个剑名之我也叫PW了,当然这个名字你随便起个。我们就贱名之意了,然后呢,这个地方来,那这个值应该谁啊,对user.get什么老PWD,就这个账号开PWD这样就行了,这样的话又生成一个酷K,然后定个变量把它接收了cook kc2等于这样就行了,然后他是不是也得记十天呀,对,他也得记十天,C2点叫来个叫SYH往外记时间,那这个时间十乘以24对乘以啊,然后呢,再乘以啊正。
22:08
这样的话,这个库位写完,写完之后也得把它写到浏览器,那也得通过瑞兹帮组返回到浏览器I的cook k,然后呢,这个是来一个对C2,嗯,然后呢,大家看这样的话,我们这个两个铺位都写过去,就如果他登录的时候。需要记住密码,他如果选中了那个拆boxs之后,他就出他是出入登录成功了,那就往往写cookie,把它登录成功的这个账号密码以cookie的形式写到浏览器。写了浏览器干什么,下次再来的时候,只要这个空位没消失。然后都会自动带过来,自动带到什么,带到服务器,带到服务器干什么,服务器就可以获取这些cookie。就可以获取这一库,获取完了之后怎么就可以该显示到哪个地方,将来就可以给他显示了,就他每次再来访问我们这个服务器了,那你原来访问服务器,他访问这个页面可不可以带过来,可以带过来,只要访问我们这个应用,只要访问这个工程,它都会带过来,不管访问哪一个外部资源,都会自动带过来。
23:18
那有同学说,老师万一带不过来呢?对,过期了,万一没过期他也带不过来呢。有这种情况吗?对,有这种情况吗?啊,我给他写库位还没过期,他下次来访问我这个工程的时候,没给我带过来库位,有这种情况吗?啊脑对不在自己电脑,那这么这个用户,那他不在自己电脑,有可能是这样,假如他在他自己电脑上吗?换浏览,假如也没换浏览器。还是用同一个浏览器,也没过期,上面有cookie却没给我带过来。可不可能?不可能知道不可能,为啥不可能规定规定知道吗?协议规定的必须带过来,只要我这个工程以前给你写过,给你这个浏览器写过酷位,这个酷位只要没过期,下次通过这个浏览器再访问这个工程,不管访问哪个外部资源,不管是JSP页面,Serve还是controller,只要访问,一定给我带过来库位。
24:25
我这个工程以前给他写的,会一定会给我带过来。不带过来说明这个浏览器就做错了,浏览器错了。这浏览器发的请求,我给你以前写的cookie,你没没给我带过来,没过期,正常情况的cookie你没给我带过来,没过来,你浏览器错了,错了怎么。错了,这个浏览器没有人用,你知道,所以这些浏览做浏览器的这些什么,这些厂商,他们也有一大批程序员,这些浏览器也是软件,他们那些成本做软件的时候也都是根据标准,根据规定做的,并不是说你随便做的啊,谁定义的标准,还是国际上有这种组织是吧,当然这些组织这些一般是咱们国内,当然这些都是西方人定的标准。
25:10
西方就他们的这种科技进这个起步比较早,他们定,他们定他们只能用啊,只能用知道吧,咱咱们学会了,咱们慢慢咱们的这种技术比较发达了,这咱们这些标准,慢慢咱们也有自己的标准。这咱们这个中国现在也慢慢的也参与这标准的制定了,以前全部都学人家,就现在就说这些华为之类的这些这些公司在国际上也参与标准的制定。等一些,就像5G标准是吧,就说离不开华为了,现在是吧,所以就我们也参与这标准制定,那你说参与标准制定还累是吧,谁谁制定它干嘛制定,他对你国家的这种这个学习啊研究啊,这个都提供很多便利支处,以前我们都是基于英文的,所以咱们全民是吧,这个小孩从从小就学英文,你说为啥学英文学人家的标准。
26:04
学人家标准,你要如果是中国人,这个方可以什么到一定程度之后,标准都是咱们定义的,全世界的小孩都得学,学学汉语是吧是吧。对吧,所以这是我们这,但但是没办法,咱们现在这些标准都是人家制定,但现在咱们先研究,慢慢在超越,这是我们要阵容,所以这些都是标准的了,好这是我们这个如果记住密码了,那就往外写库位,下次来就给我带过来了,带过来我就可以获取到了,知道怎么获取,一会再说知道吧,好这个,那假如大哥如果他没记住密码呢,他登录成功了,假如说他他没记住密码怎么办?没地方眼不往不写枯萎不就行了吗?能不能啥都不管啊,不能为啥呢?对他有这种情况,大家你看他有这种情况,你比如说这样,有一个用户第一天来的时候,输入账号密码了,记住密码了,你点登录,假如说是不是,假如说登录成功了,是不是这样的,这第一天记住密码了,他第二天来的时候呢,是不是自动再一访问这个logo in的JSP过来访问这个向这个JSP发请求的时候。
27:17
是不是就给我带过来扣费了,带过来我是不是自动给他填上了。对,获取它的枯萎自动在填上了,那他只需要什么点登录按钮,或者一按个回车,它就可以登录了。这是第二天来的时候,万一他这样的第二天登录的时候呢,给他显示完了之后,他觉得诶记录密码箱不安全。他说第三天我以后不想记密码了,他又点取消了。然后呢,他说以后我再也不想记密码了,然后呢,一点登录,第二天是不是也登录成功了。这样假如第三天来呢?对,第三年来那个哭黑,是不是十天之内他都会带过来,我又给他选上了,又选了他本来说第二天他说我不记密码了,这个你又给他选上了,是不是就给他这个初衷,这叫中啊,不符合他这个他的他的这个初衷啊,大家明白这意思吧,按理说第三天来不应该给他寄咋办?但他带过来了,你又给他寄了咋办?
28:19
对,所以说大家看他每次什么登录的时候,如果选中了,就给他往外写库位,如果没选中呢,对,把以前写的没有过期的cookie给他删了,这样他再次来的时候就什么就不会带过来哭,我就不给他讲了,大家明白这意思吧,就这样,所以这个地方他每次是吧。他每次来的时候都判断是不是计寞,如果记住密码,往往写哭位,如果没记住密码呢,对,删哭位,把没有过期的cookie,就没有过期的cookie删除删除,这样再来就不会了,就第三次来知道吧,就不会给他寄了,就这意思。
29:06
这是我们说这那这样的话,那往往什么,那就把没有过期的这个库给删了,那如何删除cookie呀。对,怎么删啊。根据获取。冒险。啊,把他带过来cookie,然后呢,改了是吧,给他删了,删了那你可以获取他带过来的cookie,带过来cookie你在这个,你在你服务器里边能删吗。上不了,为啥上不了呢?对啊,你想你的代码在这执行,在哪执行呢。在服务器中,他的空位在哪个权证呢?对,在他本机在到浏览器上,在他电脑上存档了,你的电脑运行在你的服务器上面,你能直接到他电脑上去删删删cookie吗?他cookie去的都写到文件里边,你能删他的电脑的文件吗。
30:11
对,不能。嗯。但你反过来在想,你要如果能把他的电脑上的业务文件删了。那这个世界不就乱了吗?啊,你访问我一个应用,我随便一执行代码,把你电脑那些文件给你删了,你干不干,你肯定不干是吧?那这个世界就乱了。这个标准肯定不是这么定义的,不可能不是不不能这么定义这个标准。那那我想删他的护卫咋办?怎么办?对战友,我不能删你的,我不能直接删你的cookie,但是根据协议我们什么我可以往你上面来写cookie,知不知道吗?我往哪边写枯位,那往写枯会,我想删上库,你在往上写枯位有啥用啊,我这样我写这种枯位,我往外外边写给我以前写的这俩cookie名字一模一样的cookie。
31:12
我只不过把它生命周期呢。值是多少无所谓,往外写一值是一模一样的部位,把1/3设成零,设成零什么意思?对,自动删除,生命周期是零了。对,假如一个人寿命还剩零秒,什么意思?对对对,那就杀了就死了是吧,哭IE给他设置生命值设成零秒,哭IE也死了,哭IE死了那就杀了嘛,是吧,所以大家我们这样,我们在这地方往外写名称是一模一样的库位。然后呢,我后边写的库,大家根据我们以前学的原理,如果枯给名字一样,是不是后边写的枯萎会把前面写的枯给覆盖掉了,所有的属性都覆盖掉,包括生命周期也覆盖掉,所以后边写的括有生命周期设成零,把以前这俩苦给生命周期给它改了,改成零秒了,改成零秒刚一写过去,这俩库克就自动了。
32:14
就自动删了,是不是就相当于。我在这个地方把这个哭给删了,真的,只不过我这个什么不是我删谁删呢?对浏览器自己删了,因为我已经告诉浏览器这俩酷位生命力是零啊,那酷位你知道浏览器一拿到之后,诶生命是零,那就自动删了,知道吧,其实这就好像一个什么借刀杀人,你知道吗?就借浏览器杀cookie知道,所以就这样,所以这是这样,所以那我这个地方,我就这往外写一模一样的cookk,那就写吧,那写直接又一个cookie,如果没记住密码,我就往外写cookie cookie的名字记住大家你想删什么cookie名字就跟那个cookie名一样,你比如说我想删这个库位名字给他一样,这个值值是多少无所谓了,因为写过去我就马上就删了。
33:06
是多少就无所谓,你问老师可不可以不写,不写不行,从语法上要求哭可以,必须有一个值,这个值是啥无所谓,就我们这个地方,因为我马上就删了它,那一般来我们习惯了,就写个一就行了,知道吧,然后呢,这个地方来一个它,当然这个值是多少都无所谓。这然后呢C1,然后呢,设置它的生命周期c1.3的啊等于几啊对零明白吗?然后呢,把它什么把这个库位写到浏览器C1知道知好这是我知,那同样大纲还有一个库位,把这个库位我也知我也知,然后呢这个地方来个二,这这个也是一吧,然后呢,这个这个K叫啥对PWD知道吧,然后呢这个方来个C2,然后呢,他的生命周期也射种零知道吧,然后往外把它也写过去知。
34:02
就如果他每次登录成功之后,就看看啊,有没有记住密码,如果记住密码往往写cookie cookie的人就他的账号密码计时天,如果没有记录密码往外写生命之一是零的cookie,就是把以前的cookie给他删了,那你说老师他万一以前没写cookie呢。以前没记住密码吗?然后这次也没记录,你不如往往写你删什么扣费。对,他以前没有没有我就往外写这俩库位生命是零,是不是写过去就删了,把它自己删,不用覆盖就删了啊,那那也是不是也不行,影响我们的功能,也不影响功能,关键他以前没记住牌,就是以前没写过顾位,没写过顾位,那么我就直接那么往外写个生命值是零的顾位,到那也删了,也不用管它就行,好这样的话大我们这个后台就写完了,明白这个,这个是后台写了,后台写完了,大家我们来看看前大了哪个地方,他刚才说了这个地方上次登录成功往往写哭鬼了,看吗?这种上次登录成功往了写哭鬼。
35:08
知道吗?这个需要记录密码,忘了写,不会不需要记录密码,把以前的图给删了,这是我们这个地方。这是我们说是啊,大家看这个地方,我们再给大家写一下,根据我们的方案分析分析,如果不需要记住密码来什么删除以前写的酷费,删除酷费。知道吗?这是我们这,而且库的值是这些上去了,那我说这个后台往外写库位我们已经写完了,下下边我们来看看这个了。他每次再来访问这个什么,下次每次在什么,每次再来访问我们的这个什么登录页面的时候,我们来看看到底那个登录页面上边,他那个账号密码是不是给他给他填上,是不是给他填,那这个地方大家我们来看看是不是给他填上。哪一个就这个页面大,看看就这个页面,这上面是不是给他填上这张了,那我来看看这个页面,这个页面在哪呢?这个页面在这个log in的JSP,然后呢,大家看这是他的,这是他的什么。
36:10
这个输入框,账号密码的输入框,这是那个check boxs知道吗?那他下次再来的时候就来访问LOG1P了,那这个地方我们就看看是不是给他填上账号密码了。然后这个地方是不是给他选中了,就这个意思吧,所以下边我们来看看这个地方到底要不给他,要不要给他填上,那如何给他填上呢?给他自动填上账号密码,怎么给他填上。这样吧,我先看看这样吧,到底需不需要给他填上,怎么怎么判断他需要给给他填上。看看对,看看他这次来登录的时候带没带过来cookie,如果带过来cookie了说明什么。
37:03
对,说明他上次记住密码了,并且枯萎没删掉,是不是已经带过来了,带过来了知道吗。然后呢,如果没有cookie说明什么,上司他没有记录密码,是不是这个意思,就这意思,那知道吗?那如何判断什么如何什么如何,那就获取他那个cookie吧,是不是这样子,对,那就获取他那个cookie,他每下次再来访问这个页面的时候,来获取他的cookie就行了,看能不能获取到,能获取到说明上次记录密码了,获取不到说明什么,以前的铺位要么没写,要么没记录密码。知道吗?啊,总之他没带过来cookie知道吗?所以在这个地方大纲,那我要获取他访问的这个页面的时候带过来的cookie,那如何获取cookie。怎么获取cookie?对,我们以前学到这种技术的,但这些别忘了是吧,获取空配是吗?对获取空配大家以前学的是不是,是不是这么写的,这样使用Java代码,使用Java代码来获取cookie请求带我来cookie知道吧,那获取cookie怎么获取呢?通过哪一个对象对请求对象。
38:25
Cookie随着请求你知道吗?发送到浏览器,不是发送到服务器,你知道吧,它里边有个方法叫什么,对get cookies是他这样叫什么,根据协议的规定我们说。浏览器每次像后台服务器发请求,都会带着以前给他写的所有没过期的cookie都会带过来,知道吧,这样的话通过request就能获取到所有带过来的cookie了。但是它这个负数叫cookie s是吗?Cookie s所以可能可能什么代表了多个cookie,所以我们定一个变量是吧,去接收了这个变量什么类型的,对这个数独知道吧,这样就获取所有的cookie了,我要获取某一个cookie怎么办呢?
39:08
利对便利他是吧,可以便利他,那便利的话就可以这么便利了,然后呢,TS,然后呢,当然可以用增强的后循环是吧,正好是不是可以拿到了,对拿一个一个库给所有都能拿到,拿到我想获取某一个库给打吧,对他里边有个内幕,可以获取那个内幕的名字。然后你想获取哪个cookie,然后把那名字给他比一比,然后呢,这次辩论这个C就相当于就是我要那个库位了,是不是这样的,对,然后然后呢,找到我要的cookie,那我最重要的不是拿到cookie的名字,我得拿到谁啊,是不是cookie的值啊,拿到cookie的值才行,所以根据名字去判断我想要哪一个cookie,你比如说他我想log in的cookie,那我就可以这么来判断,看看这个cookie,看看它。
40:01
看看这个名字是不是等于 login.X那位咋判断?对equals等不等于叫什么log in a,那么这个是不是这个库位,如果是它等,这样是不是就拿到那个这个什么对酷盖的值,那就是什么,就是他的账号了,就他那账号叫log音,然后呢,艾知道吧。这样拿到它之后,大家看是不是就能够显示到这个框里边了。大能明白这意思吧,对,拿到这我就给显示了,那如果那时候我想拿到密码了,拿到密码了怎么办?是不是还可以继续判断呀,继续判断,然后呢,看看等不等于密码,那等于人的密码,那就什么,那来判断一下,这次变了这个库等不等于密码等于这个值知道吗?PWD是吗?如果等于,那我就能拿到密码了,我就能拿到密码了。
41:00
知道吗?再这个变量来个密码啊,当然这个地方你可以什么把它记下来,既既某又变量里边,这样拿到之后我就可以显示出来是不是这个意思,这样就行了,这是在我们以前最常用的获取cookie的这种方式,就可以这么获取,其实这些代码前面让大家复习了,这前面老师肯定给大家写过类似的这种代码。知道,这是我们知道,但这种方式是不是很麻烦,对很麻烦,在后台Java代码里边写这种代码,可以在页面里边你写这个代码你咋写。你得写一个代码块里边间括号百分号,间括号百分号,然后在这里边写,写完之后定义变量,定义变量在这里边是不是可以给他写里边去啊。就知道吧,所以这就比较麻烦了,比较麻烦了,知道。然后呢,大家看下边我们给他用这种方式,这种方式大家应该也用过哪一种方式在页面上来获取数据。
42:00
在页面获取动态数据。大家最常用的方法叫什么?EL表达式对EL表达式使用EL表达式,使用EL表达式来获取顾客。使用ER表达式获取部位,使用E表达式怎么获取部位?E表达式语法吧。那E2的语法什么样的语法?对DO12大括号在这里边是不是写K啊,对写数据的名字是吧?写数据名字,那我这个地方要获取的是cookie,是不是要写cookie的名字,那这cookie名字叫什么?你说我想获取账号,对cookie的名字叫lo in act啊,你说老师你怎么知道这个cookie的名字是我写的,我当然知道了。对程序员你自己登录成功了,你往外写的这个cookie的名就叫他,那你肯定就获取他。但是我说这张写有有问题啊,有啥问题,一表达式里边如果出现这种变量,一表达式咋解析咋运行。
43:06
对,他会把你写的这个名字到四个作用域里面去搜索,对,依次搜索这个数据。如果能搜索到,直接就给你拿到了,如果搜索不到,那就是空知道吗?他先到配置仓单里边去找有没有没有对,然后倒这片有没有没有倒三神里边有没有没有倒啊,白天没有没有没有空,他有空知道。诶,你说老师不是获取cookie吗?默认情况下ER表的是你要如何在这里边写变量一类的东西,ER表的是会把你写的这个东西作为作用域里边的某个数据,默认情况下是这种,就默认情况下ER表达式会把它做做当做作用域里边某个数据,但是我们这个的我不是获取作用里边数据的,我是获取cookie的怎么办?在这前面加一个什么前缀,加一个前缀就行,表示获取名字是log in的cookie。
44:06
哪一个前缀就这个cookie,点这张ER表示在执行的时候,它不是到四个作用域里边去搜索它去了。到哪儿?到请游里边去找名字是他的cookie去了。知道吧,找到之后,然后就取出来了,那你说老师万一哭克里边没有了,没有就是空,他也不会到四个作用里边去搜,为什么?因为我已经明确告诉他了,到cookie里边去找数据去。所以他就只到cookie里边去找,知道吗?这样的话我们就可以了,知道吗。好,这是说,那这样的话,大概我们能拿到这个cookie,但这个cookie大家都知道它是一个对象,每一个cookie都是一个对象,就这么一个对象。那我这个地方要显示什么呢?要显示cookie的值是不是样子,我要获取这个cookie的值,怎么获取?对这这个对象,我是cookie对象里边三个最重要的属性,一个是什么name表示cookie的名字,还有一个什么value表示cookie的值,还有一个什么maage表示它最大的生命周期,明白吗?所以我们这个地方获取啥value,获取了cookie值,获取库位值就能拿到账号了,那同样密码也是,也是同样的道理,我要想拿密码,那是谁啊?
45:30
Cookie点叫什么这个cookie的名字,拿到他密码就行了,大家能理解这个意思吧,对这样的话我们就可以了,是吧,这样我在这个页表,我在这个页面里边就能拿到账号和密码了,把如果他带过来了,直接把账号密码写到这个什么这两个输入框里边就行了。是吧,那如果没带没带过来就是获取的就是空空,那就也设一个空就行了,那用户也看不到,啥也看不到了。所以大家下边我就把获取到这两个账号密码设置到这两个分别设置这两个输入框里边,那如何把我获取到这两个账号密码设置到这两个输入框里边,怎么设置?
46:09
对Y6属性,你往里边输,不也是输入Y6属性里边了吗?对,所以直接给他复的Y6属性,然后把你这个什么获取到写到这那获取写面边咋写。对,就是这样,哎,这个地方来个,到了时候来个,那我就我就直接烤啊,这个地方直接拷过来了。这是账号,同样还有一个这个地方,那个把他也拿到。然呢这个地方,呃,Y6,然后呢,这个地方直接写他就行,一个账号一个密码就写他,如果带过来肯定能获取到,然后就给他填上了,如果带过来空克了,那如果没带过来,没带过来就是空啊,就是空啥啥也别有。长。就是把这个什么估这个值就获取到了,这是我看这但这种方式写过吗。
47:04
没写过是没说没用cookie,不用cookie这样,这种形式写过吗?对,写过是吗?这种形式写过加上cookie,道理一样,只不过获取的数据从cookie里边获取而已,以前都是从作用率里边获取,现在是从cookie里边获取cookie。嗯,对,Cookie cookie,它这个不是内置对象,它相当于谁,相当于这个,相当于这个东西,Request session相当于这个东西。明白这意思吧,对,只不过这个什么,它cookie也是表示某一种作用欲,就某一种作欲,只不过不是不是属于四大作用欲里边的。它也是相当于某一种作用欲。直播他的数据不是存在服务器里边,是从客户端提交过来的,就这个意思,好这样,你说老师前面除了这四个死功夫,还有哭鬼,还有别的,还有别的还有什么,还有这个。
48:12
啊,这个power是什么意思。获取参数吧,假如你要直接访问JSP页面,如果通过问号后边带来几个参数,你要想在这个页面里边想获取,你就可以这么获取啊。如果你要不这么获取,你得咋获取,如果获取参数的话。request.get perter是吗?那样写是不是很麻烦是吗?用一表示简单是吗?啊,所以这些大家要知道啊,这个好,这样的话再看我们说这两个数据,如果带回来就给它显示,自动显出来,如果不带过来,那就是空的,你知道吧,好,这是我们说这样,下边我们来考虑这个。这一个这一个表示什么,如果带过来cookie了,是不是这两个不但这俩自动给他填上了,这个地方是不是也得自动给他选上,选上如果没带出来,那这俩都是空的,那这个地方也不用给他选上了。
49:09
所以大家看这个拆boxs,现在它是默认不选中的,我们这个地方来判断一下,他没带没带过来扣费,如果带过来自动给他选上,如果不带过来不给他选,就保持这样就行。知道吗?好,这是我们说的,这那下边大家考虑一下,那我到底什么时候默认给他选了,什么时候不选了。网页下载。那就是看看他带没带过来cookie是不是这样吗?对,带没带库,那如何判断他带没带过来cookie呢?如何判断带没带过来cookie?在页面里边做判断了是吧,这个时候得用到谁了,得用到前面我给大家考那个资料叫什么GSTL标签上那些标签在我前面跟大家讲啊,那些标签专门在GSP页面里边做什么,对流程就流程控制的,流程控制可以做什么,循环可以做判断,判断是一个很重要的一个一个部分。
50:18
所以下边我们就可以什么要做判断必须得用标签了,不用标签不好判断了。啊,不用标签其实也可以,但是比较麻烦大家,是不是每一位同学都看我的资料了,对都看了啊对,你要如果不用标签,你得你得咋判断。对间括号百分号在这里边判断了,是不是你得在这里边判断了,在这里边判断我们知麻烦是吧?所以我们得用到GSTL标签库啊,GSTL标志库,那这个我要用,用的话是不是首先在这个页面里边引入那个标签库啊对引入标志库,所以我们这个东西引入,那引入的话怎么引,还记得吗?这里边加上一个什么,对tIgEr library前面加个前缀我们用。
51:05
对,GSTR核心标志库这个前缀就是C了,下边来一个uri,然后呢,找到我们的GSTR标志库,下边这个第三个直接找他行,这样它里边定义的所有的标签我们就可以使用了。那使用了怎么使用我这个地方用判断的表格,怎么这个地方我来判断一下,对来一个C叫什么冒号if,冒号if,然后呢,在这里判断一下,它里边有个TT里边让你写一个一二的负R表达式。他将来执行的时候,先执行这个表达式。然后这个表示是结果是个布尔表达式,那么结果要么是true,要么是false,如果是true,那么这个标签题里边我们会写我们的JS代码会执行的,如果是false,这里边写了也不执行,就这意思吧,我在这里边来判断他带没带过来这两个cookie。如果带过来,我就在这里边儿显示这个拆包头,让他让他那么自动选路。
52:06
如果没带过来,我就不让他选啊,所以在这里边来判断这俩cookie是不是带过来了,那在这里边如何判断这俩cookie是不是带过来了呢?对,那就是判断,在E里边判断两俩数据是否存在,咋判断。那就判断这俩数据是不是。为空或者是不是不为空,是不是这样的吧,是吧,那在页表格里边判断一个数据是不是为空,或者是不是不为空,咋判断?EL表达式法判断一个数据或者一个一个数据是否为空,或者是否不为空咋办吗?对,别忘了语法,语法你别忘了知吧,语法我们这个叫再讲语法我们就讲不完课了是吧?那咋办呢?大家以前学没学过这个。什么意思?
53:03
判断对判断E表作用域种或者是什么,或者cookie或者参数,一个数据是不是存在,或者是不是是不是为空啊。你比如说他看现在我想判断这个cookie是否为空,我想判断它这个为空,我就可以这么写,这么写表示什么意思,表示判断这个cookie是不是为空,如果为空,整个返回出。否则。如果他不围攻法律,否。知道吗?这是我们说的这样做,那那我们这个地方,我想判断,如果它存在。那我就想着拆个boss让他选中,他存在,那就说明他不为空,那我只需要判断他是不是不为空就行了,判断他不为空怎么判断knock m,如果它不为空,说明它存在,那这个地方返回出,返回出就执行我们代码就行了,能理解这个意思吧,对这个意思知道吧,那同样如果它不为空,并且还有一个另一个条件,他也不为空,这个时候我才能选中,万一有一个不为空,有一个为空的,我们也不让他选中。
54:15
知道吧,所以我这个地方,并且这个也不会空,叫什么not m,它这个空位不会空,并且这个也不会空,他俩都返回出的时候,整个布尔表达式返回出,返回出干什么?在这里我显示他俩都不会空,说明这俩cookie都带过来了,带过来说明什么?说明他记住密码了,那我给他显示check box显示的时候让他选中,选中咋选中,对,加个check或者check等于true也行,直接写check,它也是,那么选中了知道吗?这是这这是他俩都不为空的时候,就说明带过来俩空位了,那就是给他选中你了,那如果他俩都为空,或者至少有一个是为空的,那怎么办呢?
55:03
对那那那那这个什么,那就不给他,那就不给他什么,选中那这个地方就不执行不执行,我要还得想着包子拆个包子,那只不过不选中咋办呢。对,那么老师加个LS不就行了吗?当然我说这种标签没有LS标签是不是我们什么再写一个对,再写一个CF再来判断一下,只不过这个什么判断布尔表达式取反就行了,条件取反就行了,知道吗?然后呢,这个地方来一二表达式,那来判断这个cookie是否是为空,判断它是不是为空,怎么判断I菩什么M,如果它为空。或者哦,谁这个或者什么这个PWD为空,或者他俩都为空,反正只要有一个为空的。那叫什么,那就执行到这里边去,执行这里边干什么,我来显示这个插包S执行它,执行它的时候显示check boxs,只不过呢,不给他选中而已。
56:05
这样的话,我这地方就写完了。他俩一定,他俩这个条件是互斥的,一定只有一个直径。要么他执行,要么他执行,不可能俩都执行,也不可能俩都不执行。所以这是我们说的正。好,大家家这个代码大家能理解吧,对,可以啊,所以大家要跟上我的思路,课堂上不需要你敲代码,不需要你干别的,你只需要能跟上我的思路就行,课下你再整理思路,你再整理笔记,然后你再写代码,知道吧,这种思路是大家最重要的,对,好,这样的话呢,我们就可以了,可以完了之后下边搓一。
我来说两句