您的位置:首页>聚焦>数码 >内容

session是什么特点(session是什么怎么用)

2022-07-24 08:14:04来源:
导读想必现在有很多小伙伴对于session是什么,怎么用方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于session是什么,怎么...

想必现在有很多小伙伴对于session是什么,怎么用方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于session是什么,怎么用方面的知识分享给大家,希望大家会喜欢哦。

当浏览器访问某个页面时,会在服务器端开辟一块内存,这个内存是和浏览器的窗口或者浏览器的子窗口关联在一起的,这块内存就是session。这个session只能由这个浏览器访问。同一台机器的其他浏览器不能访问此session。那么如果另外的浏览器访问时也想记录一个状态怎么办呢?那就需要在服务器端再建立一个session。并和刚刚那个session进行关联。

由于http协议是非连接性的,当浏览器取完内容就和服务器断掉了,如果我想访问此网站的其他内容或者子窗口,而且这个页面要知道原来访问的session,这个该怎么处理呢?处理方法:第一次访问页面创建session的页面时给浏览器创建一个唯一的号码,同时给创建的session赋予和浏览器同样的号码。然后在服务器端记录一系列的seesion。当我访问第二个页面的时候,请你把号码发给第二个页面,第二个页面再找号码和原来session对应的seesion。就能找到原来的session 。所以每个窗口都有一个唯一的号码。这个号码就是sessionID。那么这个号码在什么地方,我该怎么传递它。传递的方式有两种如下图::cookie 实现

现在,我来点击写信(163邮箱),可见sessionid是不变的

未经芝士回答允许不得具转格用载各本文内容,否则将视头为侵权

如果我打开新的应用,域名不一样如下,sessionid就会发生变化

在要种外但式角则单,带目至确今界青劳听。

如果这时我关闭新的浏览器窗口重新打开sessionid又发生了变化,此时说明,如果会话窗口关闭了,则sessionid就失效了。

Session的实现方法 通过url重写实现。

客户端传seesionID 传给服务器  通过cookie传session 就是将seesionid 放到cookie中传递。放到临时的cookie(非本地cooKies)就可以了。因为session 和浏览器窗口对应的。窗口关掉了,sessionid就不需要了。窗口关了也不会有人访问这个窗口对应的session 了。

如果浏览器没有禁用cookie,那么session的实现就是依赖cookie的。当服务器创建sessionid的时候同时将seesionid 保存在cookie中了。需要注意的是如果我们关掉窗口再次打开新窗口后sessionid又重新创建了,每次刷新sessionid号不会发生变化(没有关窗口的情况下)。 如果我们的浏览器不支持cookie,那么无论我们怎么刷新页面sessionid都会发生变化(不正常)。那么我们必须自己变成使用url重写的方式实现使用response.encodeURL(访问地址): 加上这个函数的作用,转码;访问连接地址自动拼接sessionid 。

一起实它向强给济清,张装委便历太格京铁。

在登录我们的邮箱时,会有一个记住邮箱名,这个其实是保存在cookie中的。当我们登录进去后就会产生一个sessionid 。当我们在点击写邮件时是打开一个子窗口,这时候子窗口就知道了这个session。如果这个界面不长时间访问这个邮箱,那么再次访问时session就有可能过期了,因为如果我们在写邮件的过程中出现了死机或者窗口关掉了(除非你再次访问),服务器端不知道客户端发生的事情,那么服务器就会根据你上次访问这个session的时间和当前时间进行比较,如果超过设置的过期时间,则就会过期,让你重新登录。就如返回窗口,都是session过不过期的问题。需要注意的是有些网站在访问处理session时都是依赖cookie的。如果你的浏览器禁用了cookie,网站的访问是不能正常进行的。 同一个application(web application web应用名)下的servlet/jsp可以共享同一个session,但是要在同一个客户端窗口下访问,和cookie不一样,cookie存在路径访问的权限问题。Session 只要打开新窗口就会产生不同的sessionid 除非是父窗口打开子窗口。

目前来说,我们所在项目的大部分session的管理都交给了服务器中间件去处理了,如tomacat、weblogicSession的过期时间可以在应用服务器中进行配置,比如tomacat默认的session个的过期时间为30分钟。这个30分钟是上次访问时间距离当前时间的间隔时间。最后给大家说明一下weblogic配置session的处理的两种情况:在web.xml中进行配置(覆盖weblogic.xml的TimeoutSects的属性)

使用weblogic.xml的配置

本文到此结束,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章