00:00
好,下边大家我们这个这个地方大家看我们说登录成功大,我们说跳转到业务的主页面L了啊,跳转到业务的这个主页面,跳转业务主页面就跳转这个CTRL了,跳转这个CTRL,我们上次说这个页面来看,他跳转这个页面,这个页面没找到。对,没找到的,看我们这个地方为什么没找到,我们没把它改成什么动态的网页,是不是这样的啊,那下边我们呢,就是把这个网页改一改就行了。把这个网页改成JSP网页,然后他就可以跳转过去了,好,下面我们来看看这个网页,然后呢,哪一个网页呢,看看业务的主页面谁拿的看就这个业务的主页面,就他把它改成JSP就可以跳转过去了。从哪就从这个CTRL跳转过来,就从这个CTRLL啊,从这个CTRL去跳转过去了,跳转来到这个页面,那这个页面改成JSP。好,那改GSP的话,我们得签到编码,必须得先改个编码,而且你不能说先灭名称,先灭名称改成GSP再改编码,不行,必须先改编码再命名,知道吗?牵扯到这个编码格式里的,而且如果用到这种URL了,为了去掉点点盖,还得加上杯词标签,知道吧,这样的话我们用的时候更更么更方便,更方便所有的这种ul都从根下边去找,加上base子标签就行了。所以大家以后把静态网页改成动态网页的时候,首先做两件事,第一件事修改页面的编码,然后改成UTL杠包,然后呢,再加上贝斯标签就行了,知道吧,所以这两这两个代码呢,你只要改过一个,这两个代码都是固定的。
01:43
那改编码就是在那个什么配置指令里边content type改就行了,然后呢,这个是base标签,那直接通过那么动态的方式获取到这个杯子标签,获取个字符串之后加上杯子标签就行了,知道吗?所以这两个代码都是固定的,所以呢,你写完改完一两个页面之后呢,你也不用写了,你也不用一一个一个的敲了,干什么,所有的页面都从某一个页面里边拷过来就行,因为这些页面都是死的,大家写一次之后,不用每次写,每次写耽误时间,知道吗?到公司里边也都是考过来。
02:17
不用每次每一个页面都写一遍,这样耽误时间,知好下边大家这个地方加base标签和那个编码,我这个地方改这个页码我也不会写了,我直接找我们以前改过的那些页面直接拷过来就行了,哪一个页面我们这个地方哪一个页面了。对,登录页面是吧,来登录页面,这就这个页面,那我来找找这页,就这base标签,还有这个编码直接拷过来。选中之后CTRLC,然后呢,找到我们这个。这个业务的主页面改一下,把它贴到这就行了,然后呢,这个地方给它贴到这,填出杯贴过来,所以这样的话我们就可以了,可以完了之后加上杯子边上这些点点杠都不要了。
03:02
所有的债卷都从碑四下往上找。那给它替换掉就行了,选中之后CTRL2打开这个替换到这个界面。打开之后点缀操全部提完了,然后呢把它关掉,这样的话这个页面就改造好了,改造好之后呢,右键,然后呢把它重命名成JSP动态网页就行了,然后呢,这个地方来改成JSP,这样的话就可以了。好,这样的话就改完了,改完之后呢,这个页面运行可以使用了,它再从CTRL跳转到这个页面,这个页面就能找到了,就不会报404了,好,下边我们再次启动服务,再来登录一下,再看登录成功之后,这个地方就不会报404了,就来到业务的主页面了,知道吧,好,下边我们来看一看。
04:05
好,下边呢,我这个来登录张三,诶这个地方大个张三,然后呢,Y f123,然后呢,一点登录按钮,再家看大家登录过来就跳转到我们这个业务的主页面了,知道这个页面就找到了,哎一会这个暴露404,这个暴露404是说在这个页面里边又访问别的页面了。这个页面我们这个功能还没做,所以报404了,那这个功能这属于业务管理的功能,我们后边做业务管理的功能的时候,再解决这个404的问题。但是这这个只要能拿到业务的主页面了,这样的话,我们这个登录这个功能就做好了啊,就说明成功了,能够登录成功了。这是我们还要说到这个关于登录的这个基本的功能,这个我们就做到这。好,那大家下边我们来看看这个关于登录功能其他的一些细节的一些要求,我们现在把基本功能做完了,但是还有的地方不满足他这个业务的需求,客户提出这个需求,有的地方不满足,所以我们这个地方给大家什么再完善一下,哪个地方还有大纲,他说是这样做,这个现在登录成功了,这个地方我们做完了,这个地方也都做完了。
05:22
没有啊。这些做验证了,这些也都判断了,下边当然这个地方我们有没有做,这个地方干什么,这样说,用户登录成功之后,应该在所有的业务页面上面都显示当前用户的名字。也就是说用户登录成功之后,来到业务的主页面了,在业务的主页面,假如说这个功能你都做完了,都可以直接做了,他都可以办公了,他不管点哪一个功能,在右上角都要显示当前用户的名字。不管做什么功能,在这个地方,每一个页面上面都应该显示当前用户的名字,知道吧,那那这个地方怎么显示,怎么来完成这个功能。
06:06
那我们来分析一下是吧,我们说登录成功之后,它就跳转在这个浏览器窗口上面,就跳转到其他的业务页面了,那不管哪个业务页面都要能够获取到当前用户的名字,咋获取。当年用户的名字在哪呢?当前用户的名字再看是不是登录成功之后,大家我们一块分析一下啊,当前用户名字登录成功之后再看。登录成功之后,他说当前用户的名字上。当前用户的所有信息是不是都在这个user里边呢?对,都在user里边,哪个都在这个user,他只要登录成功了,所有信息都查出来,都放到这里边儿了。那么那在所有的页面里边,要想显示用户的名字,那就可以从这个对象里边取了。
07:00
那从这个对象里边取,如果目前我们写的这种方式,所有的页面从里边取能取到吗?对,取不到,取不到,为什么取不到,因为我们这个userr现在在哪呢?对,在这个CTRL里边属于这个变量嘛,是不是属于这个C,属于这个CTRL方法的一个局部变量,知道吧,那但是它这个局部变量你在这CTRLL方法里边任何地方你都可以用。但是我要从别的页面里边用怎么办?朋友的演员。对是不是对吧,我们现在数据在CTRL里边,然后我想在页面里边用的话,是不是你要从什么CTRL把那个什么,把那个数据传给什么这些页面啊,传给页页面啊,所以说的话,我们要把CL里边数据传给页面,怎么传啊。对,放到作用浴里边是吧,放到座用边,大家记住一点啊,以后不管是么,不管是什么是吧,不管是你用控制层的技术,用service还是用,还是用C,还是用tru,还是用别的控制层的技术,只要想在控制层的代码里边把数据处理好的数据传给页面,都是通过什么,都是通过作用率来,大家明白这意思吧,这种你只要想把。
08:26
把控制层的这个处理好的数据,然后想传递给页面都要用啊,都要用作用域去传递那种bug,我们这个地方把控制层的技术,把控制层代码中处理好的数据,然老控制层怎么还能处理数去控制层自己不处理,他调service方码,调业务层的代码去处理,处理好之后业务层会把什么处理的结果返回个控制层。所以控制层就能拿到处理好的数据了,那我以后拿到数据不是目的,将来我要把这些数据,然后呢,显示给显示到页面上边,让用户去看去,那我要什么把这些处理好的数据,然后呢传递给传递到什么视图层,视层目前来讲我们这个地方视图层就是JSP知吧,然后呢,这个什么控制层,那我们现在控制层我们这目前来讲我们就死亡MC里边品住了啊,当然以后如果你要用S,那这个这个就是sorry,如果你要用,那这个地方就是X知道吧。
09:34
啊,所以不管是什么样子,只要把控制层代码中处理好的数据要传给视图层,这个时候怎么传呢?就使用作用欲,使用作用欲去传,使用作用欲来传递,传递必须得使用作用欲知道吧。那使用作用欲这个地方就有问题了,有啥问题,我们以前是吧,学外国的时候,大家给大家讲过四个作用欲是吧。
10:00
四个作用,哪个作用浴比较好?对,那这四个作用域我们说它都有什么应用,各自的应用场景的,一个是request,还有一个作用域,还有谁啊session是吧,Session还有啥application是吧,是不是这样吗?或者叫那个什么contact是吧?啊叫我们就叫叫application,然后还有一个叫什么对配置或者叫配置comp,配置comp知我们学过四个语,这四个作用语都可以在外部。那么C,那么在外部资源之间来进行传递数据,我们说的外部资源就是JSP和controller,或者是这三个都叫外部资源,就是能够在服务器上面来运行的。这些外部资源中间传递数据都是使用这四个作用域,那使用这四个作用域你不能随便用,你得知道他们的应用场景。
11:00
那首先大家配置康泰的这种什么作用于适合传输,适合传递什么样的数据?对它的作用域,它的范围是不是比较小啊,它只适合在什么某一个页面中间进行传递,是不是这样的,对从这个页面的前半部分传到后半部分,或从这个页面这个标签传到那个标签里边,在一个页面范围之内传递,传递出去,哎,那有的同学说,有的同学老师在这个时候我就我就不明白了,是吗?在同一个页面之间还还还需要传数据吗?对,什么时候需要,我就在一个页面里边,我需要传数据吗。在什么需要,什么时候需要,什么时候要,其实这个地方呢,我们没给大家讲,那么深知,其实在一个页面里边也需要传递数据,怎么传呢?从一个标签里边传递到另一个标签里边。啊,什么意思,假如我们这个什么,以后我们在JSP上面可以什么写很多的标签,我们现在用的标签都是什么,我们现在用标就是SP给我们提供好的标签,其实以后你可以自己写标签在JSP页面的话。
12:12
你自己写标签干什么,其实自己写标签,其实说白了对吧,你要自定义标签,怎么自定义标签,其实说白了不是说自定义标签,其实是你写类,写类怎么什么意思,就是说一个标签,其实。后台对应一个类,当运GSP运行那个标签的时候,那个标签在后台就对应一个类,那然后呢,一一运行那个标签,其实就运行那个标签对应的类。就道吗?就我们现在学的那GSP那些那些什么那些标签,其实都是定义好的,后台都有加班类,就像我们前面给大家给大家讲的那些什么,让你们看那个不知道大家看了没有,这种什么GSTL标签库,那里边标签大家看了没有,对看了是吧,叫什么for each是吧,这些是吧,对吧,For each,什么for each,这这种我就假假装这么写啊,这些标签其实后台都对应一个加Y类,知吧一执行这标签,其实真正执行的后边加班类知道吗?我们给大家讲的那些么,我那个资料上面给大家讲的那两个标签,那两个标签是GSP定义好的标签,你也可以自己定义个标签,自己定义什么签随便写,我可以自己定义这么一个标签,我我还可以,我可以随便定义这么一个标签,随便定义,你只需要指定这个标签将来它对应哪个Java类就行。
13:33
这个标签也对应一个加包类,那怎么指定,肯定按规则指定,怎么指定,我们不给大家说了,总之他们每一个标签都可以对应一个加包类,知道吗?那这个时候我们就什么就需要什么,将来一运行这个标签的时候,万一它产生一些数据,然后呢,想让这个标签去显示去。那这个时候什么我们就可以这么来做了,一执行这个标签的,其实执行它的价构类,在这个价构类里边,它处理好数据可以什么,可以处理一些数据,处理一些数据干什么,我想在下边用这个标签去显示去,那这个你要从这个类里边把你处理好的数据传给这个标签对应的那个价格类咋传。
14:15
就是通过配置comp的船。它处理好数据放到配置康泰里边,然后呢,这个标签运行的时候,其实运行它的类,运行它的类就可以从配置泰里边把这个数据取出来了,知道。这是在同一个页面的标签里边是吧?在同一个页面里边不同标签之间进行抗体数据使用配置抗态素,哎,那你说老师为啥会非要用配置抗泰素,用水快速的不行吗?在同一个页面里边,一个从一个标签传到另一个标签里边,用开可不可以?对,可以可以配置康都可以,Request当然可以了,那为啥不用request的,对,为啥不用,因为request太大了,不需要用request啊,怎怎么不需要用了,假如这个页面哦,你把这个数据放到放到这个request里边了,传给JSPJSP显示,显示完之后这个数据还有用吗?
15:14
假如这个标签里边处理好一个数据,放到配置放到什么,放到配置康泰里边了,传给接传给这个B标签了,B标签显示完了,这个数据还有用吗。没用了,没用了,你要如果放到request里边,是不是这个数据一直存在,一直存在,假如这个JSP请求转化到另一个JSP了。这个数据是不是即使没有用了,是不是还一直存呢?从这个JSP又转到另一个JSP了,即使你在这都想着么,这个数据没用,没用是不是一直占内存啊,占内存对吗?那叫什么占服务器的内存了,所以它的效率比较低了。所以我们说在同一个页面之间传递数据,能用配置康就用配置康,别用别的,当然我们说用三传,假如在同一个页面的时候传可不可以啊,也可以用application是不是也可以啊,但是我们说效率太低了,所以那我们说我们一般来讲不用他们,所以这个的话我给大家讲一下,给大家讲提一下,我说配置康开子它里边它主要用来干什么?用来用来那么在同一个页面叫同一个页面啊的不同标签之间之间来进行传递数据,传递数据就张网,这是我们说是啊,当然这个地方大家我们没有讲这么深,万一以后你需要研究相关的这些技术的,你可以考虑用它啊,大家知道,大家要知道要拓展这种思维,思维方式是吧,你不要仅仅局限于咱们为什么平时做这一个功能,这些技术用用到的这些。
16:51
这些内容你以后到公司里边,咱们讲这些仅仅仅仅是一小部分。你要扩展这种思维方式是吗?好,这是我们说的这个,那request大概用来传递什么数据呢?
17:06
Request子的范围是什么?它的作用范围是是是有有多多大的。是不是从发请求开始到做出响应,这个整个这个流程之间都可以,他都可以有效啊,大家明白这意思吧,是不是这样子,这这种从发请求什么发请求大纲,从这个地方请求一旦产生,这个筷子就产生了,在这个中间过程当中都可以有效。但是响应一旦回到浏览器,这个request就失效了,所以你要想在什么一个请求当中来有传递数据的话,你就要用什么同一个请告中用什么用这开始在同一个叫同一叫同一个请求时间,请求过程中间来进行传递数据,那你可以用request,用request那我们最典型的应用就是什么?就是这样,你比如说大哥我想查看,我想查,我想访问一个UR,我想查询某一个用户,某一个这个数据的列表,假如做个学生管理系统,我想查看学生列表,那我应该怎么做?
18:18
我想查看学生的列表,想访问一个URL,能把所有的学生给我列出来,那我们应该怎么做?能不能直接访问JSP页面?不能吧,因为我要查数据,所以不能访问JSP页面,而且JSP页面通常我们放在web infer是不是不能不能直接访问JSP啊?那我们应该怎么办呢?对,是不是必须经过一个controller啊对,先访问controller,在这个controller里边是不是把数据查出来。对调service调ma把数据查出来,查出来之后怎么办?是不是跳转到JSP去显示去去显示,那这个时候这个CTRLL把数据查出来了,要跳转到JSP,那CTRLL把数查数据,JSP是不是要把数据显示出来,显示出来那我说那这个CTRL要把这个查查的这个数据,然后呢,传给JSP咋传啊。
19:12
对request.set这个时候是不是用request传啊,用request传就行了,知道吗?啊,所以说大家他先把把数据查出来之后,然后呢,request.s放到放到request里,然后在JSP里边。是吧,然后把这个数据取出来,怎么取啊,是不是通过一二表达式取就行了,对取出来显示出来就了,大家能理解这个意思吧,这样这样的话,大看再一次请求,就是当用户一输入这个访问这个CTRL,这个URL请求,诶一输它,然后呢,直接到这个CTRL了,知道吧,这个ctrler呢,这个CTRL把数据取出来之后呢,这个响应并不马上回去,应该什么跳转,JSP怎么跳转,是不是请求转发呀,请求转化,然后还是一次请求,所以这个什么,他往块里面放个数据,它也能取出来,取出来之后显示,显示完了之后再返回。
20:05
再返回响应,一旦回来,这个request就消失了,知道吗?这样的话,我们数据也传过来了,所以能够输数据快一消失,数据也能及时释放,大家能理解这意思吧,是吧,所以大家每次大家这个作用域,这四个作用域大家一定要理解好它,这是外部最基础的理论,要理解好不理解好了你以后没法做外部项目了。你要如果不知道他们的应用的房,那你以后没法做外部,外部项目开发,这是最基础的理论了,知道吧,好,所以说大哥这是适合,这是request是个在一次请求之间来进行传递数据,那现在我问你了,大康,那他这一次请求这个把数据CTRL把数据取出来,然后到JSP去显示了。它通过作用域,通过request把数据传过了,通过session能传播。
21:00
能是吧,为啥不用30能?三八对30大,30大怎么了?那他这个把数据放到30里边了,这个地方把数据取出来显示出来了,然后响应回去之后,就那么这用户就看到学生列表了,看到学生列表,这个学生查出来这个学生数据还有用吗。都显示完了,是不是就没用了?没用了会不会及时释放掉呢?不会什么,因为session不会消失是吧,Session什么时候消失?当一直不访问了,一超期是不是在消失,在消失,但是什么在消失之前,这个数据一直占内存,所以效率太低了,所以不用算,当然更不用了,知道吧,所以这是我们说的这个地方,好,这是我们说它是在一次请求当中传递数据啊,在同一个请求过程中来进行传递数据。啊灯中,然后呢,这个三线大家看在什么地方,在什么时候用session传递数据。
22:00
什么时候用三对需要长久保存,需要长久保存放到application里边了。知道吧,什么样的数据session是大纲?我们前面给大家讲过,Session的作用域是什么?是它的作用范围是多大?是这样,在同一个浏览器窗口上面发出了多个请求,之间是不是都可以共享一个共享啊,所以说只要在同一个浏览器窗口,不管发多少次请求。他只要不退出,只要是在一个浏览器窗口当中,不同请求之间传递数据,这个时候用赛那浏览器窗口,一个人一个浏览器窗口,我访问机,我开我的浏览器,他访问器他开他的浏览器,所以一般来讲这里边都是个人,每一个人一个浏览器窗口。所以说一般来讲,Session里边数据都是放私人数据用么?都是同同一个浏览器窗口用什么发出的不同请求之间传递数据用什么,用such,同一个浏览器窗口的浏览器窗口的不同请求之间。
23:15
就多个请求之间需要传递数据,传递数据这个时候我们用什么?用session,用session就是说什么意思,就是说这次发的请求产生的数据,我下次发请求还有可能会用到这个数据,这个时候他产生的数据放到三审里边,下次发请求,包括以后只要浏览器不变发的请求,只要想用到这个数据。那么它放到30里边,大家都能用到,知道同一个浏览器不同请求之间传递数据,所以这个时候放到30帧里边知道吗?好,这是我们说的,什么时候放。它的范围多大,全局对全局从服务器一启动到服务器关闭,是不是这个什么,这个这个作用一直有效啊,所以当我们什么那那我们说那只要是服务器开着,那么大家都可以什么都可以共享里边数据,那什么式数据才能放到里边,适合放到里边。
24:19
重要的数据,对重要数据也说这些数据都,这些数据都都挺重要的是吧,都要显示都挺重要是吧?一般来讲都是什么样的数据呢?是这样,嗯,是这样的,不是某一个用户的,是所有的用户都共享的数据,共享的一份数据适合放到里边,如果只是某一个用户数据,某一个用户能用到,放到,放到里边就就不好了,为什么?因为只有你自己能用,你这个浏览器窗口能用到,别的浏览窗口都用不到,你要如果放这边。那这个时候占大家的内存知道吗?你用完了,你不用了,你这个数据还一直在里边存着,那占浏览器内存啊是吧?你个人的数据应该什么,应该你用完了之后呢,你不用了,你退出之后,你三消失,消失了你应该放到session里边,然后你的数据你的三一过期就没了,就及时释放内存了,知道吧,所以这个application应该放到什么,多个用户就或者是我多个用户,或者叫所有的用户都共享的数据,适合放到application里边啊,而且必须是反复使用,你说多个用户只用一次也不适合是吧?应该是主要是放什么,所有用户,所有用户都用么用么,所有用户用户都共享的数据,或者叫频繁共享,共共享的数据,然后呢,并且啊,并且长久频繁叫长久。
25:55
频繁使用的数据,然后呢,适合放到application里边知道吧,所以大概你以后是吧,这四个作用具,每一个同学都要很清楚,什么样的数据适合放在他们里边,你也不要背,你也不用记,不是你也你也不用背法东西你可以记的是吧,啊,你可以记每一个这个作用域的应用场景,将来你不同的这个数据可以选一个不同的作用域里,好好这样,那现在呢,我问你了,我想把当前用户的信息想放到作用域里边传给页面去,我放到哪个作用域里边,哪个里边。
26:35
想好。那你想啊,我现在的这个数据在这个CL里边,在这个C里边。以后这个数据我想在什么范围内使用,对,只要是他登录成功之后,是不是只要在这个浏览器上面,他不管来到哪个页面,来到哪个页面,是不是都是发不同的请求啊,在不同的请求当中,是不是都要用到这个数据啊,对,在同一个浏览器窗口的不同请求之间共享数据用哪一个对session session知道吗?所以你要分分清它这些语法大家都我相信,大家怎么往里边放出去,怎么取数据,大家都学会。
27:23
大家都知道怎么放怎么取,但是你要如果不知道把什么数据放里边,然后呢什么时候取,他们你学了跟没学一样。知道吗?这些记住,那我们说你虽然知道这些语法了,我们说了,我们学不仅仅是学的语法,最重要的是学这些语法什么时候用,这才是我们这个阶段最重要的内容,语法,语法太简单,太简单压根儿就不值得一提,对我们程序员来讲的话,因为你常年的写这些语法,关键是你要学会什么时候用。所以这些,那你说到底怎么学会运用,我给大家说出来,但你课下细细的体会它。
28:04
以后用到时候什么时候用,所以我这个东西就说什么放到30里边了,那放到三省里边,在什么时候放到三省里边。在我这里边把这个U放到30吧,什么时候放登对登录成功时候再放,登录失败放有意义吗?没意义,所以登录成功的时候放往哪放是吧?往那里边放对在这个地方把user是吗?把user然后呢保存到把user对象,然后呢保存到作文域中,保存到session中啊保存到session中,然后呢,只要这个在这个浏览器状态当中,谁用谁都可以直接用了,知道吗?那保存到30当中。怎么保存啊对,在这里边是不是加个行态来注入那个什么三神啊,注入三人要拿到三神对象了,那这个地方拿到赛身对象,再说再加个性能把一个HTTP对session,然后呢这个session,然后呢,我们这个地方就可以直接用它了。
29:04
然后呢,放放三里边咋放对塞特别这里边是不是给他起个K啊啊,当然这个K你随便起了,我这个地方建名,这我就叫session u法啊session u,然后呢,这个值就是我们个对象,把这个对象放这边以后,谁需要直接从那个三线里边取就行了,你知道吗。好,这是我们说的,这当然了,这个地方又有问题了,有啥问题,这个K你写死了。万一哪天是吧,以后就叫你现在这个方放的时候就叫这个K了,以后在任何地方取的时候都用这个K取,用session.get a tri取,那将来有很多地方都需要取这个user这个数据,当前用户这个数据,那都得get a tribu写这个K,很多地方都用到这个K了。那你现在这个可以叫session user,万一哪天变了,不叫session user了,大家会看到以后到公司里边还有可能叫这system user,叫系统用户等等这些,或者叫system,知道吗?叫知道吗,叫current user知当前用户嘛,这样,所以万一哪天变了,那哪天改了,你得所有的只要涉及到这个K的那些类,那些地方都得改,所以维护的成本太高了,所以那怎么办呢?对,设计成常量,把这个K设置成常量,以后用的话直接调常量就行了,改的时候直接改常量就行了,在哪改,在这个地方来再加一个常量,这个地方,这个地方来保存保存当前用户的K。
30:51
K,你知道吗?来再定成料public ste,所以大家要跟上我的思路啊,这因为大家以后到工工作,我们开发基本上也就这么这么来做了,对吧,那这个常亮它这key肯定也是个字符串,然后呢,我这个地方直接给他起个名字行了,那起个名字,名字你随便起,建名之意我就叫session,然后呢,丢份了知道吧,然后呢,这个值我暂时先叫他,万一哪次哪天哪天改了,我这直接改这个地方就行。
31:23
然后所有需要它的地方直接调这个常亮就行,所以我这个地方我就不直接直接写色层,这个地方直接调层,然后呢点2SESSION u知道这样的话,大概我就保存到session里边去了。保存到session里边去了,将来在所有的这些页面里边。然后呢,右上角都取到当前用户的名字就行吧,那来看看取当前用户的名字怎么取呢?那找那个页面,这个页面再看这个地方在哪显示了呢。奔驰对work和奔驰下边那个主页面去拍对的EP,那你来找找他呗,来找找一找,来看来找一找,然后呢,我们来找一找walk奔驰的index叫他知道吗?它上面有个显示的当前用户的地方,在哪里显示到这个地方,美工写死了一个张三,我们来搜搜这个张三在哪?CTRLF搜一下张三,你看看,当然就这个地方。
32:23
这是顶部看到吗?这个地方,那这个地方那就别写死了,这个地方从session里边来取当前用户的那个什么name。属性就行了,那在这个地方从30里取数据怎么取。对,在接单位置P里边取,从作文里边取出,取出去一二表达式,一二表式,到这时候大括号是吧。那在这里边写,那在这里边写写什么呢。对那块写那个K是吧,那K叫什么?对三神U是不是叫他对叫他哎,你说你咋不用常量了,我说这是在监测页面里边不能用常量,那我这个地方我就只就写我的K了,那你们万一改改,那我这个地方没办法只能改知道吗?
33:12
啊,因为它不是不能用我们的常量知道吧,好这样的话取道是我是一个什么,是一个user对象知道吧,因为我们往这里边放的是个对象,那我这个东西显示那个对象的名字,那怎么办?对点直接什么那个对那个name属性名就行了,这样就拿到那个那个用户的名字了。啊,当然你要如果这样写的话,他将来取这个u session user的时候,是不是从四个作用里去搜索去先搜索配置con了,没有找request的。Request里边也没有,是不是找session,诶找到的时候直接显示了,那我这个地方我已经确定了,我放的时候就放到session审里边了,是不是就没有必要让他从什么先从块里边,然后取,呃软块先从配置康那边取,配置康块没有让找筷子。
34:01
然后外边又找又找session里边是不是没有必要去从前两个找了,直接指定从session里边找,怎么指定,对直接写session school,这样的话我们就可以了。好,这样的话大我们这个页面里边记住啊,只要登录成功了,来到这个什么业务的主页面,不管点哪一个,在这个地方都显示当前用户名字,知道吧,好,这样的话我们就可以了,可以完了之后下边启动服务,大家可以测一测,那每次都能显示出来了当前用户的名字,对。然后呢,这个地方来张三YF123,然后呢,这个地方来这个地方来一个点登录来看这个登录成物看到吧,这个当然你要用李四登录,那这个地方就是李四了,知道吗。
35:05
所以这是我们说的这个关于这个这个需求,这个我们就可以了。好,这个还有一个地方,还有一个地方,我们他这个需求上没写,他这个需求上面没没提出来,但是我们以后做的话,通常是这么,通常是做成这样子,什么样的大这个地方你看啊,在这个地方你看吧,就说现在我们说用户登录的时候,就输入用户密码一点登录。然后呢,就把用户名,密码,然后向后台发了一个请求,随着请求一起提交后台了,后台拿到之后呢,访问数据库,比对,比对什么查出来之后又什么,又得判断是不是合法,然后判断完了才访问详细信息,这些带上这些得需要一个过程,什么需要过程呢?首先用户在他自己电脑上点登录,他得向后台发请求,怎么向后台发请求,通过网络发请求。
36:02
所以通过网络,网络如果什么快还好,如果网络慢,他发起牛得需要一个过程,那后台接收到了,又得把这些参数拿到,之后呢,封装起来,又得访问数据库去,又得访问数库,那访问数据库,这个数据库有的时候跟这个什么跟淘开压根不在一台电脑上面,数据库在另一台电脑上,他也得通过网络去连数据库。这个时候又得需要一个过程,然后连上之后又得到这边去查询数据,查到时候又得需要一个过程。然后查完之后返回,返回这个地方生成小应又光返回,当然这个地方我们说得需要一个过程,特别是网速比较慢的时候,有的时候什么它输完之后,在这个地方一点登录得半天才能回来,有的得好几秒钟。五六秒钟可能才才返回,才返回,在这个过程,用户什么一点完之后干什么,一直在这五六秒钟,一直在一直在这等着。
37:01
干什么?响应没回来,他前台不知道成功还是失败。呃,说只有什么响应回来之后,登录成功了,跳转登录失败了,在这个提示信息。所以在这五六秒钟中间呢,用户不知道后台发生什么事。他一般来讲,现在这种互联,特别是互联网应用的话,用户不可能说点完登录之后在这等,等你五六秒钟,然后呢,等你回来了,然后呢,然后我再做别的操作,有的时候在互联网项目是吧,等一两秒钟,大家都很急躁是吧,等一两秒钟,我就这么觉得,你这个系统没反应,我觉得你不行,我访问别的项目吧,直接给你关了是。所以这个时候就就有这种风险啊,那怎么办?所以一般来讲的话,用户一般来讲提登录的时候,一般都提这这个需求,这什么这中用户户密码了一点登录在后台验证过程当中呢,为了让用户排除用户这种是吧忧虑是吧,干什么一点登录,只要响应没回来,在后边给他提示一句话。
38:02
正在验证或者正在努力验证,请稍后。然后呢,如果成功了,那什么直接跳转,如果失败了,这个地方是什么给他显示失败的原因,把这句话给它覆盖了。所以他是什么,有很多情况都做,做这种效果是吧,所以大家这种效果假如要要让我们做的话,应该怎么做。对,加个试卷,再加什么,在哪加试卷。第一行。对点登录按钮的时候,是不是我们要执行我们JS代码,执行JS代码,那就触发这个什么,我们就准备向后台发卷流了。知道吧,发请求应该说只要是点完,然后呢,响应回来之前,是不是我们这在这个地方可以给它显示一句话呀,对显示一句话,在这个地方可以给他显示一句话,你知道吗?在什么时候显示,这是一个重要的时间节点上吗?
39:01
你要分清在什么时候显示,那这个时间节点显示的这句话的这个时间节点,应该说点完登录之后,响应回来之前在这显显示一句话就行,大家能理解这意思吧,就这样,所以我就准备来这样做了,他点完登录之后,响应回来之前在这个地方提示信息,这个span这个地方可以给它显示这么一句话就行了,知道吧,所以那我们来看我们这个代码具体写在什么地方。这是这个登录这个页面,点完登录就执行我们这个函数了,就执行这个函数,然后呢,响应在这个地方返回的,所以我们只需要什么,在点完登录和响应之前,在这中间任何一个地方,按理说显示那一句话就行了,是吧。那我们一块来看一看,具体在哪个地方显示,在这个地方显示可不可以。为啥不行?
40:00
对,万一他这个参数他都没输,是不是就不用给他显示正在登录了,正在验证了,大家能明白这意思吧,就直接告诉他账号没输,因为密码没输就行了,假如说这个地方。阵容他要如果没出一点,他直接弹出来了。用户名或密码不能为空,知道吗?那不用给他说,你不能说这样他一点这个地方,这个给他显示正在验证,他都没输,你给他验证是吧。所以说大家看这个地方是不是不太合适,那在哪个地方显示。啊。对发起在这个地方可不可以,对在这个地方,可以在这个地方显示一句话就行。在这个地方想着一句话,知道吧。好,这是我们说在这个地方可以可以,在这个地方可以知道吗?然后呢,大家看在这个地方可以,那这个地方那可以的话,那这个地方显示显示正在验证知道吧,正在验证,那显示这句话发现时。
41:02
对大看获取这个SPA,然后呢,是不是是他的往里边显示一句话就行了,是不是大家家就这就这一行代码啊,把里边内容改一改就行了,在这个地方就行了,然后呢,这个地方给它显示这句话啊,正在努力验证啊,知道吗?请稍后啊就别紧稍了,就这就这篷简洁一点的,是不是就这样总这些大家以前可能上网的时候也有这种体验,在这个地方可以。在这个地方可以知道吗?好,这是我们说的这个地方,这是这方,这个地方可以啊,我告诉你,然后呢,大哥在这个地方可不可以。在这个地方可不可以?可不可以已经对响应已回已经回来了,是不是你再显示这句话没意义了,对他已经经过了,等了几秒钟,等了几秒钟响应已经回来了,才想示不大不大可以知道吗?在这个在这个地方不可以知道吗?我所以在这个地方是最合适的。
42:11
这在这个地方可以有的,有的人在公司里边也是直接写到这,我这个地方我不准备用这种,我不准备写到这个地方,我给大家讲这个,给大家讲这个功能最终的目的不是为了仅仅是显示这句话,我主要是想给大家显示,想给大家用一下阿贾克斯这个函数,阿贾克斯这个函数里边。它里边有这些参数,这些参数是个对象,那么看看这个大括号对象,这有参数名参数值,参数名参数值,它除了有这些参数之外,除了有这些参数,还有一个参数,不知道大家以前用过没有,我主要想给大家介绍一下这些参数,这个参数大家以后的工作中有可能会用到哪一个参数,这些参数对跟这些参数是并列的啊,跟这些参数是并列的,再加一个逗号。
43:02
参数和参数之间用逗号隔开,还有一个参数,这个参数这个不知道大家用过没有,这个参数用过吗?这个后边是一个function,这个喷。这个参数大哥你没用过,我让你猜一猜什么含义,你能猜出来吗?对,发这不我说阿贾克斯一调,它就是向后台发请求的,这个北方森呢,什么意思呢?就是阿贾克斯向后台发请求之前,要执行后边这个函数要出发的一个函数。知道吧,知道,所以这是一个这种这种当这个函数的这个参数的意义意思就说当阿贾克斯听懂吧,然后呢,向后台发送请求之前啊,发送请求之前,然后呢,会自动啊,然后呢,执行或者叫执行,嗯,本函数,本函数它会发请求之前先执行这个函数,先执行这个函数,那我们就可以把代码写到这里边了。
44:11
写在这里边干什么,有的时候你可以对什么,对你发请求之前做一些什么初始化工作,你可以做,做一些准备工作,你可以做知道吧,你可以把代码写到里边,知道吗?诶那你说老师写到这里边有什么,有什么用吗?啊,其实写到这里边给你在阿贾克斯发请求之前调阿贾克斯这个函数之间发,其实他俩的时机是挨着的,只不过他更什么,他更靠前一点。知道吗?其实这个时机是挨着的,知道吗?那你说为啥用它我这个地方仅仅如果仅仅是发行之前,仅仅是执行它这个地方,我也没必要给大家提这个函提这个参数了,这个参数我主要给大家提的是什么了,是这执行这个参执行这个函数的,这个函数的执行结果能够影响阿贾克斯是不是真正向后代发进。
45:03
就说这这个函数它有这个作用,就说这个什么,当这个函数该该函数的返回值执行完之后,该函数返回值执行的访值能够决定阿贾克斯最终是否真正向后台发起内容,向后台发送请求,就这他能够决定阿贾克斯是不是真正方就阿贾克斯向后台发行之先执行,它有它执行的结果,能够决定是不是阿甲格真正发,它怎么决定,是这样,这个函数有个返回值,如果该函数该函数返回返回返回成返回处。则则,执行完他的代码之后,执行完他自己的代码之后,如果返回出了,则阿贾克斯会那么对真正向后的发进球,真正向后拍发送请球,那么否则,否则,如果那么否则,如果该函数直径完之后返回false数,则阿贾克斯会放弃是吗?放弃向后台发程是即使你写阿贾掉阿贾克斯这个函数了,你即使掉它了,如果这个函数执行的结果是个falsex,阿贾克斯也不会向负代发进图了,就他放弃发发停流,就这个意思。
46:37
所以这个函数其实大家以后的工作中有可能会用到是吧?那有可能会用到,怎么用阿贾克斯设计这个参数,它的本意是什么呢?他的本意是这,他说阿贾克斯既然要向霍德发请求,他肯定会有一些参数发到后端。那为了保证什么,这些发送后台这参数必须是合法的,阿贾克斯提供了这个函数,提供了这个这个参数,这个参数干什么?就是说在这里边它的本意是想让你什么对,把表单验证这些代码写到这里边去。
47:10
贴到这去。发请求之前先表达验证,表达验证如果不合法,干什么return什么for,如果不合法,返回return,提示完了之后返回return。知道吗?如果都验证通过了,瑞特人出知道吧?这是阿贾克斯他们那些开程序员知道吧,他们开发这个框架的程序员本意是想让你这么用,但是程序员我们这我们这些程序员呢。很多时候什么做表达验证,如果写到这里边儿,感觉阿贾克斯显得什么太冗杂了,我直接在前面验证不就行了吗?如果验证不通,我直接把这个函数就这么结束了,这么做显得更整洁,知道吗?然后呢,大家这种思路也更清晰,知道。
48:03
当然你可以,有的人就可以这么做,我我也习惯这种,大家以后也可以直接这么做,表态严重,但是有的人呢,你到公司里边,有的人习惯这么表态。这两种方式都有用的,表单验证的代码可以写阿雅的,也可以写到阿雅里边,这两种都有,那我们这个地方给大家介绍一下,你以后遇到别人这么写,你别说人家写错了,知道吧,啊所以大家我们这个地方大家给大家介绍这种方式,这种方式你以后可能会遇到,对,当然咱们这个地方呢,我们就不用,我们不用这种方式了,是吧,我们表单验证,我以后表单验证全部都写在这个地方。但是有人有人喜欢这么写,好这是我们说的这个地方,好这是这样,那我们这个地方当然表达形上我们已经,我们早早就已经验证通过了啊,验证通过了,那这个地方我主人显示哪句话显示哪句话,这样我可以在这个地方,最终我想在这个地方显示这句话啊,在这个地方显示这句话,显示这句话来看是不是也是发请求之前显这个显示的,对发请求之前显示的那这样。
49:10
而且在工作过程当中,大家也通常把这句话写到这个地方,你知道吗?好,这是我们说的这样,发请求之前来显示这句话,那显示完了之后呢,为了让代码是请求继续发送,是不是要返回,是王对返处违张。好,这样的话呢,我这个代码就行了,讲完之后下边启动服务来测一测,然后我通过这个功能主要给大家介绍这个参数,这个参数大家可能以前应该设计过这个参数啊,这个参数大家以后开发的时候,你会经常遇到这有人喜欢这么写。好,然后呢,这个地方记住了,你比方张方案YF123点进来,假如我输入一个是错误的啊,你看这我一点这登录大你看吧。
50:11
好吧,有这句话好吗?他这句话只不过我这我所有我没经过网络,我所有的什么数据库啊,应用服务器啊,客户端都在一台电脑上,所以这句话中显示到时候比较短暂,一闪就通过过去了,如果通过什么网络的话,如果网速特别是比较慢的时候,这句话就会显示一会了啊。对,这是我们知道,那你我们这个地方,你说如果成功了,你说YF123,然后呢,一点成功,你看啊这句话是吧,也是一闪而过。啊,当然我们说这网速慢的时候,它的作用更明显一些。好,这是我们关于这个功能,我们就要说的。
我来说两句