00:00
好,比如说我们现在来一个浏览器啊,浏览器,然后我们再来一个服务器,然后再来一个数据库啊。将来你如果笔试的时候啊,有一些简答题需要搭配画图啊,这个数据库啊,它必须是一个圆柱体,OK吧,这个不能乱画啊,前面这些东西画啥都行啊,好呢,大家注意啊,现在啊,我从浏览器为这个服务器发一个请求,这个请求很简单。其实这个请求就是什么呢?啊,就是访问一个JSP页面,通过这个JSP页面呢,来给我响应回来一张表单,我要填一张表单可以吧放表单,但是这个JSP中的这个放表单呢,它有下拉框。放款的都有下拉框怎么办?用不用过网后台走网数据库吧哈啊,咱们就不说过后台的问题了,用不用走数据库,这个是必须的吧,有下拉框,下拉框怎么办?诶到数据库中干嘛呢?取数据,取完数据是把这个下拉框给它填充了呀,对不对?填充完之后怎么办呢?咱们才把什么呢,填好数据的这个页面给它响应回去,怎么这么面熟呢?
01:21
所有者。是怎么了?OK吧,所有是不是这么玩的。你想一想啊,所有者里边owner里边没东西啊,我们先过把后台走,把数据库把用户表中所有记录无脑查出来,然后填充到下拉框之之后,然后我们把什么这个哎,这个这个模态窗口给它转开了,是这样吗?好,这跟我们这个响应回来一张页面是不是一个道理呢,对不对,好哎,老老师,咱们要不要把这个所有者。
02:00
也给它处理成这种数据的形式。要不要?这个我们一会儿分析啊,这个不着急啊,这个是我们一会儿的一个问题,OK吧,咱们先抛开所有者啊,那大家注意看啊,我们现在是不是相当于给用户想要回来这个页面是不是带这个填充好数据库,填充好这个数据的下拉框呢?对吧?好的,大家注意看啊,我现在这个用户啊。再发一个请求,我还访问这张表呢。我第二次访问,或者我有其他用户访问怎么办?还得干嘛,我是不是还得访问这个数据库啊,数据库干嘛取数据填充下拉框干嘛呢?做响应。下次我再访问呢。访问干嘛到数据库取数据做响应,是这样吗?诶,也有点问题吧,同学们,问题是什么?每一次我拿到这张页面的时候,这张页面都不会老老实实的给我想回来人家必须得先走一把,什么呢?数据库连数据库那可费时费力啊,同学们。
03:07
你创建连接,销毁连接这些东西啊,包括数据库解析这个SQL语句,是不是都是耗时间耗内存的,能理解吧?好,所以说啊,咱们访问一张普普通通的页面。啊,其实呢,也是一个什么呢,也会耗费一些效率,没有以前那么快了,是这样吗。怎么办呢?也就是说现在啊,我们的这个思路是这样的,同学们啊。好,咱们这个思路是这样的,这个还是我们的这个服务器中的一个资源,它是一张GSP,里边有个表单,OK吧,但是我们在启动服务器的时候就可以干嘛。启动服务器的这个过程中,我们就可以啊访问到这个数据库,看到没把数据库表中与数据字典相关的数据啊。
04:01
给它保存起来,看到没?这一块大家注意,我现在是画在哪儿呢?是不是画在服务器中啊,这是服务器中啊好,服务器缓存中,咱们这一块缓存保存的是什么呢数据。四点。OK。那么我们现在再来看啊。浏览器为这个服务器发一个请求,诶里边有表单呢。对不对?好,这是这是一张表单,表单中有下拉框,下拉框中有数据没。没数据对不对?好,他现在用不用不用再到数据库中进行访问了,他不用了,你访问数据库啊,这个真的是从一个软件连到另一个软件,真的是超级麻烦的,OK吗?怎么办呢?从哪取?同学们,咱们是不是从这个服务器缓存中把这个数据字典取出来,填充到下拉框中是不就行了。
05:03
OK吧,从缓存中取数据,一是避免了与数据库之间的连接,避免了与它之间的交互,二是避免了数据库会给我们解读那个思QL语句,也就是数据就在我们的手边,我们直接取出来用就行了,能理解吧,所以说呢,这就省却掉了我们连接数据库的这么一个时间,诶,填充好数据之后,我们把这个页面啊响应回到浏览器上,OK吧,好,那每一次当我访问的时候,他就说每一次当我访问的时候访问,访问之后怎么样呢?咱们从哪取数据就行了,数据字点中哎,数据字点哎返回数据哎填充下拉框,哎返回是这样吗?非常的快。省却掉了连数据库的这么一个时间,行,那我能不能够保证这个数据字典啊老师这东西好用是好用,但是呢,这个数据字典它就会一直保存在这儿吗?会不会一直保存在这儿,会不。
06:06
会不会会,为什么。我怎么保存呢?你告诉我这个代码怎么保存呢。A application.set atribute数据字典,数据字典是这样吗?哎,我是这么存的啊,也就是说对于我们的全局作用域上下文预对象a public来讲的话,当我们服务器启动的时候,这个必须得分析一下它的生命周期啊,服务器启动是不是服务器自动的为我们创建出来一个上升预对象啊?他是不是单立的。单利。单实力整个项目就用这一个对象,是不是它是单立的,是这样吧,好,反过来讲呢,我创建出来这个对象啊,它可以服务于所有的以及JSP,是这样吗?好,它肯定是一个,是这样吗?所以说呢,服务器启动这个东西它就创建了,创建完之后我们可以马上干嘛呢?把数据取出来,保存到application application当当中,这样吧,好,只要服务器不关闭,那么我application application这个对象就始终存在,那么我application application这个预对象当中所保存的这个数据字典是不是也是会始终存在啊,OK吧,当服务器关闭。
07:29
上下文遇对象怎么样销毁?这是他的生命周期,是这样吧,服务器不关,他不销毁啊。只有服务器关闭了,它才销毁里边保存的数据字典,这块缓存才会被清空,是这样吗?所以说我可以认为。我每一次在访问到这个这块服务器缓存的时候,它肯定是有值呢,这我能我是能保证的是这样吗?好行,那么将来咱们这个服务器缓存啊,经常会搭配这个数据点来使用,OK吧,好,那么我们接下来一个问题啊,好,我们如何。
08:08
好让。咱们这个application啊。在什么呢?服务器启动。啊阶段啊阶段好就将谁呢这个数据字典。保存进来,这我是怎么做到呢?也就是说在服务器启动的时候啊,是不是这一套我就已经做好了,诶在这呢啊就这一套就已经做好了。看这一部分啊,同学们啊。说这一部分我是是不是就已经做好了啊,数据库的交互对不对。怎么做到的?这回咱们是用到什么了?监听器是这样吗?我们可以监听什么呢?咱们监听的肯定是上海玉对象。对吧,好,思路是这样的啊,我用监听器去监听上升预对象的创建。
09:04
这没错吧,当上回鱼对象一创建我监听器,是不是监听到了?好执行我的监听方法,我在这个方法当中是不是。两个数据库,把数据试点取出来。给它塞到这个application中是不就行了啊,这是咱们这个思路啊好。所以说啊,我们要使用到啊。这个啊,监听器的这个技术啊。行,咱们简单复习复习监听器啊,咱们监听器都能监听什么呀。
我来说两句