00:00
我们来说一下http session的生命。周期什么意思啊?G session什么时候创建?Session什么时候销毁,什么时候创建?Session对象。什么时候?销毁赛事对象。好,我们看哈,什么时候创建呢。我们还是这么说,比方说我在这个页面下呀,我有若干个GSP。或者是我有若干个JSP或者是S都可以,不一定是JSP哈,还有可能是S啊,比方说我在这个应用下边,我有很多个GSP。
01:00
我们换一个,这个是一个GP页面。Six。有好多。这个是二。这个是三,也有可能有其他的色类,不可能。好,我不再画了啊,那我现在的话呢,我用浏览器向服务器做一个访问。这个呢,我们假定为是一个浏览器,浏览器向服务器做一个访问,说我是不是当我访问一个JSP或者是一个service的时候,我访问任何一个,只要我开始访问了,就会创建一个session呢。是这样吗?我再说一遍哈,这个是服务器上边有JSP,也有可能有,我们知道这个JSP的本质是不是就是一个呀,所以说我访问一个JSB跟访问一个差不多,那是不是意味着我只要访问任何一个JSB或者S都马上会创建session呢,是吗?
02:20
不一定吧,这个事儿确实是不一定,为什么呢。我把物理问题再说一遍哈,来看这个问题。说。是否?浏览器访问服务端的任何一个JSP或。So。那服务器都会立即创建一个http session对象呢?
03:01
是这样吗?这个问题是这样吗?那一定是。不一定,为什么不一定啊。大家说这为什么不一定啊,我们在这写为什么不一定啊,第一个,第一个比方说我真的去访问一个JSP或者是ex,但我在这个JSP跟service里边根本就没要求你马上有一个三对象,它是不是就不创建啊,看着看着。我写一个啊,以这个为例吧,这是一个3.gp,好了,这个时候我写个sin等于false这个时候。我访问他的话,我们看。不让用呗,然后的话呢,我这样写一个获取一个request get。
04:04
Section,注意我写个,那这是什么意思呢,是说。我通过这样的方式获取session。如果当前页面。有一个跟当前页面关联的三审的话我就返回,没有的话我返回now30.gp我访问一下就知道了,好了,注意看这个啊,我写成。3.gp我。复制一下回来注意,为什么复制一下你不直接访问呢,一会儿说。是不是no啊,这个时候它就不会直接创建,确实是没创建,确实是没有好了,那我现在的话呢,我先来访问这个a.GP。a.JSP我再回来,这个时候是不是有了呀,那这个时候有的这个JSP是我当前页面创建的吗?
05:07
也不是吧,是因为我在那个A里边有了吧,然后我再到这个页面的话呢,我也有了,但无论是哪种方式,我这个页面本身都没立即创建一个JSP返回给客户端,所以说第一个问题是不一定的,不一定,那这个不一定的话呢,应该是有两种情况,若。当前的JP或。So。是客户端。访问。的当前web应用的第一个资源。切JSP或so类,我们先说,我们先说JP吧,切JSP。
06:02
的配置指定的。三属性值。喂。False,则服务器就不会为GP创建一个三对象。这个时候的话呢,它就不会创建,这是第一种情况,我们说说这个时候的话呢,你访问这个session呢,是你访问这个web应用的第一个页面,那我这个时候我还写了三等于false,对不起,我返回的只有一个now,再看。就这个页面啊,复制关掉点开。就是闹没有新的,没有新的,那另外一种情况是什么呢?另外一种情况是我现在的话呢,我先访问的是a.JMP,写一个a.JSP大家看我访问这个页面的话,这个时候服务器是不是的确会创建一个session对象啊,会创建一个,然后的话呢,我从A去B了,这个时候B还会再创建一个S吗?
07:24
不会吧,它是从A传过来的吧,OK,这个时候也不会创建。第二种情况是落。说。若当前的。J不是。客户端访问的当前外访应用的第一个资源。
08:00
然后切啊,当这个,呃,其他页面,其他页面已经创建了赛程对象,Session对象,则当前TSP页面会返回。嗯,一个绘画的。HTTP再生对象而不会创建一个新的,而不会创建一个新的。HTTP。三身对象OK这块的话呢,我们主要是为了说说明这样说明这样一件事。说。浏览器。访问一个JSP或者一个的时候,服务器会立即创建一个三对象吗?不一定。有两种情况是不一定,第一种情况,我访问这个JSP是客户端访问的当前外部应用的第一个页面,比方说。
09:08
就是我刚才现在已经不行了哈,这已经不行,这因为这个刚才是不是已经访问其他页面了,比方说这个页面如果要是第一次访问的话,就方说我返回一个空啊,不会有第二个我在访问这个页面之前呢,我已经访问其他页面了,这个时候你在访问这个页面的话,这个时候这个页面的这个散人对象是从那个页面传过来的吧,就是表示同一个会话的。除了这两种情况以外,就会创建一个赛程对象。那包括什么呢?包括他。大家看这个时候呢,我说呀,我在这个页面上是写了一个sin等于false。这啥意思啊,这个指的是当前页面禁用,三是那个隐含变量。
10:05
但是并不是说这个页面就不让用session,懂这个意思吧,得说一下这个指令表示什么。第二个问题。这个属性这个。到底表示神马意思?怎么样?当前GSP页面禁用三声引含变量?他就是这个意思,但。可以使用HTTP单身对象,你可以使用一个显示的,可以使用其他的显示的对象,就是说我不让用它,我可以这么写,大家看。
11:15
HTTP你不是不让我用,我写一个可以吧,这个时候这么写是没毛病吧,好了,你同样把这段话拿到这个里边来。播放顶上啊。这是不行啊,为啥呀?因为当前这个页面里边是不是已经有一个面料,它叫session呢?你可以叫section two,不,这可以,而这个页面的话呢,仅是说这个等于false表示不允许使用这个塞隐含变量,但是就是呃,隐含那个没有,但是你显示写没问题。好了,这个是啊,第一个需要注意的一个地方,这是一个它那。
12:05
对于so呢,对于而言,什么时候创建session啊。对于service而言,这个service跟这个JSP有一点是一样的,就是我这个service如果要是从其他页面连过来的话,比方说我这是一个jspa a哈A,然后的话呢,我给了一个超链接,我让那个超链接连到一个sol,这个时候那个sol本身是不是已经可以获取到由这个A页面传过来那个赛。这个时候他不创建,那什么时候创建呢。说若是,呃,浏览器客户端流。客户端吧,访问的第一个。
13:03
外宝应用的资源。则。只有什么呀,只有调用了request.get。Session或。request.get session什么吧才会?创建HTTP。三声一响,注意我们这块的话呢,我们都加了一些前提。我复制过来在这块写比较费劲的话写到这了。note.txt。好。
14:00
媳妇,我们要说这一个大问题呢,是HTTP三生的生命周期,第一个问题比较重要,什么时候创建三生对象,这里边呢包含两个层次,第一个与JSP。第二个,对于。好了,对于GP的话呢,我们有一个点需要说说,是否浏览器访问客户端的任何一个GSP。服务器都会创建一个对象呢,我们说这个是。不一定的,这个是不一定的,怎么说呢,因为说若这个JSP这个service文件去掉,把它是客户端访问的。第一个资源,而且呢,JSP页面的这个三人属性值还是false的话,这个时候之后服务器就不会为这个JSP创建一个对象,那如果这个不是第一个资源。
15:15
不是第一个资源,且其他页面已经创建了。这个对象则当前GSP也不会。这么说呗,把这个拿过来好了,它不是第一个资源,切。其他页面呢?已经创建了一个对象,则当前页面也不会。的服务器吧,则。服务器也不会创建位,也不会为当前DP页面创建一个HTTP。三身对象。而会把。
16:02
而会什么呢?而会返回,而会这么说,而会会当前G界面返回这个什么呀,返回这个对象。而为,而会为当前JSP页面返回一个绘画的这个。这个规划指的是什么呀?是从其他页面已经创建好的给你返回。而会。这么说而会为当前JSP页面。这么别扭?我给你拿过来啊。敢说?说,呃,若当前JSP不是客户端访问外部应用的第一个资源,切其他页面已经。切,其他页面已经创建好了,看看这块咋说哈,第一个这个数字挺好的,我们希望这个回去呢,大家能作为一些资料来用哈。
17:05
这个小一吧。来看这说对于JSP,是否浏览器访问客户端的任何一个JSP客户端都会创建一个APP单的对象呢?说不一定,第一种情况。第一种情况,若果当前GSP是客户端访问外围应用的第一个资源,而且这个GSP的配置的三属性是false,服务器不会被这个G安拖建一个三对象吗?这个是没问题的。好看第二个说。若当前JSP不是客户端访问当前外部应用的第一个资源,就是不是第一个资源了哈,然后呢,且其他页面已经创建好了一个赛对象,则服务器也不会创建一个赛对象,而会。
18:01
而会把和当前绘画。关联的那个http session对象。返回。给当前的。JSP页面,诶,应该是这样的两点,这个是JSP好了,我们看对于啊,除了这两种情况以外,都会创建一个section对象,新的section对象给到GSP好了,对于so。二。对于serve,若serve是客户端访问的第一个外部资源,则只有调用了什么方法呀,这个方法。Get session或者是get session处才会出现session对象,否则就不会被,如果要不是第一个资源的话呢,跟这个情况相类似,我们就不再说了。
19:09
好了,这是什么时候创建赛程对象那?这里边的话呢,刚好又说了一个这样的问题。配置。指定啊塞in等于false表示到底是什么意思?什么意思啊,表示当前JSP页面的塞真隐含变量不允许直接使用,就这个意思。但是呢,你可以通过其他的方式来使用这个三对象,比方说哎,我们通过这样的方式来来使用。这就是可以的force,但我可以这样用。好了,再回来。
20:05
三那我们说吧。在中如何?获取三对象,HTTP3对象好了,我们呢就通过它来说,比方说这块三生要是false的话,我们实际上是有。两个方法,可以用第一个方法。我们在ATP request这个接口里边有一个方法,有两个方法,一个是get session。有一个布尔值create,一个是get session,没有布尔值。好了,这两个方法我们来说一下,大家看第一个方法,Get session,如果要是false,都要表示什么意思啊,这个方法。
21:05
嗯,说什么。这里边写了说两个方法可以用,第一个是request.get session里边是一个布直。说若。刚才我们已经看到了啊,To create false。得。则若没有和当前TP页面。关联的HTTP。单身对象。则返回。若有,若有。
22:04
返回。就是这为false的情况。刚才这个呢,我们已经见识了啊。保存看。Out点,好,再看一遍。CTRLC上来。我呢,直接访问这个页面,这个时候我是不是第一次访问这外部应用啊,Now没有,好了,但是我要通过其他页面连过来的a.GP好了我再返回,再刷新和那个缓存啊,这终于有了呀,这就是这个。为的,情况好了再说。
23:01
Create two。Create为true。对吧,一定返回。一个FTTP对象,这是一个呃,大的结论说,若。没有关联的。写出了都返回套。若没有关联的。嗯。一定返回,这是一个前提说,如果没有关联的服务器创建一个新的给返回,则。服务务器,服务器创建一个。
24:09
创建一个新的http session。对象返回。若有。直接返回,直接返回。关联的OK,看。这个啊很强悍啊,直接触的话,我就直接返回了。CTRLC回来。直接返回,这就是嗯为触的情况,还有一个什么方法呢?还有一个方法叫。Request get session是什么等同于?
25:06
Request get session。To,它跟它是一样的。这个的话呢,我们就不再说了,这个就是嗯,什么时候创建三的情况好了,那我们再看说既然能够创建了,那什么时候销毁呢。什么时候销毁呢?有以下的三种情况。第一种情况。塞申直接版,直接调用HTTP。方法,这个时候直接销毁。
26:01
怎么看呢?我们还是来看这个页面。看这个啊,注意我这个时候的话呢,我也已经可以直接直接直接用了啊get ID看效果。刷这个页面,大家看我怎么刷这个ID是不是都一个呀,因为我这个时候怎么着,我已经有这个ID号了。这是一,这是一个规划吗?现在呢,我调一下这个方法叫session点点是干什么的,是不使当前赛证失效啊。十。当前的。三声对象失效,OK,再看这个样子。你看每次是不是都是一个新的ID啊,因为我创建好之后,我是不是马上失效了呀,所以说这是第一个方式,它会马上使这个。
27:05
三审失效该方法。该方法是。HTTP失效第一种情况第二种情况。第二种情况的话呢,就是服务器。卸载。是当前外方应用,当前外观应用被卸载了,这个三分对象肯定是被销毁了,这个东西很容易理解,好了第三种。这个session啊,是这样,大家想是吧,哎,我很多时候呢,我都需要用到这个session,那我仿这个JSP给我创建了一个session对象。好了,特别是我们看到什么呀,我们这个塞塞属性值默认是不是true啊,所以说我一访问这个JSP就为我创建了一个session对象,那我如果要是并发强度特别大的话,如果这个session可以给你无限时间保留的话,是不会是不是会导致把服务器资源都给耗进来,所以说三申有一个过期时间说超过。
28:28
超出HTTP。Session的过期时间也会使session被销毁,那我们看看吧,那三有过期时间吗?out.session.get mark active OK,看一下。拿过来默认是什么呀?什么为单位啊?是不默认以秒为单位。
29:05
边。过来看。还刷这个页面啊,你看默认是1800秒,多长时间啊。默认是半个小时。默认半个小时,那好了,那我去设置一下它。我去设置一下。三点。我设置为五五秒,然后呢,我把这个去掉了。说如果你五秒内不访问我当前页面的话,我三神就失效了。于是。看一下它对这个值是五,五秒内访问这个ID是不是都还是一个呀,好了,就是4356,我一会儿过了五秒之后,我再访问这个ID应该不一样了吧。
30:00
五秒时下了吗?五秒失效了,然后我再访问的话怎么了,你是不是还得给我创建一个新的呀。看我们肯定过了啊,我刷一下是不是坏了啊,叫超出。三声的作息时间好了,那这一块的话会引出两个问题,第一个。设置。Http session过期。时间这个的话呢,刚才我们已经看到了,直接调用这个方法就可以。单位是秒16C。你就说单位为秒。你好了,我还可以怎么设置啊。还可以。还可以在web.XL。文件中设置HTP。
31:02
三身的过期时间我还可以设,怎么设呢?哎,这个时候我们说默认是30秒,这30秒实际上是可以被修改的,找到我的D盘。Tomcas很费宝。Web XL文件。嗯。好,CTRLF。Fashion。来看这,诶我可以通过这样的方式来进行设置,因为这个web XL是什么文件,这个是这个是。在这这个是不是在我参看下有一个总的一个we部S文件,那我如果每个外部应用。要是有一些属性不设置的话,那我就用这个种的。
32:01
我就用它,如果你要单独设置的话,就用你单独的,就相当于一个是全局的,一个是这个局部的,我们可以通过这样的方式来设置。Session的过去时间,那这个需要说一下什么呢?这个时间单位是单位,为什么呀,分钟。好了,以上就是session的生命周期,第一个什么时候创建session,什么时候销毁session,那销毁这块的话呢,还有一个需要我们重点注意的地方。叫五和四。还有一个需要我们注意的地方说,并不是关闭了浏览器。九。
33:00
销毁了session不是这样吧,并不是关了浏览器就销毁了session,这个呢,在我们前面讲课的时候已经提到过,我有两种方式,第一种方式。我可以通过持久化cookie的方式来访问到这个对象,嗯,第二种方式,我们通过112童学的方式,我也可以访问到这个三人对象。
我来说两句