JAVASession对象与application对象
⼀、session简介
session 在⽹络中称之为对话。由于http协议是⼀种⽆状态协议,也就是⼀个客户向服务器发送请求,服务器接收请求,并返回响应后,该连接就结束了了,⽽服务器并保存相关信息。为了弥补这⼀缺点,http协议提供了Session。通过session可以在应⽤程序的web页⾯进⾏间接跳转时,保存⽤户的状态,使整个会话⼀直存在下去,知道关闭浏览器。但是⼀个会话中,客户端长时间不向服务器发出请
session如何设置和读取求,session对象将会⾃动消失。这个时间取决于服务器,例如:tomcat服务器默认为30分钟。这个时间可以在程序中修改。
可以将会话理解为打⼀次电话的过程。通话从拿起电话起或⼿机拨号开始,⼀直到挂断电话结束,在这个过程中,可以与对⽅聊很多话题,甚⾄重复的话题。
1.1、创建以及获取客户的会话
通过session对象可以存储或读取客户的信息,如⽤户信息以及购物信息。
1.1.1、存储session对象 语法:
session.setAttribute(String name ,Object obj);
name:⽤于指定作⽤域在session范围内的变量
obj:保存session范围内的对象
1.1.2、获取session 语法
name:指定保存session对象范围内的关键字
1.1.3、从会话中移动指定的绑定对象
对于存储在session会话中的对象,如果想将其从session对象会话中移除,可以使⽤session对象中的removeAttribute()⽅法,语法:
name : ⽤于指定作⽤域在session范围内的变量名。⼀定要保证该变量在session范围内有效否则会抛出异常。
1.2、销毁session对象
虽然客户端长时间不向服务器发送请求后,session对象会⾃动消失,但对于某些时时统计在线⼈数的⽹站,每次等session过期后,才能统计出正确的数据,这是远远不够的,所以需要⼿动进⾏session销毁,语法:
session.invalidate();
1.3、会话超时管理
在应⽤session对象时应该注意session的⽣命周期。⼀般来说session的⽣命周期为20~30 分钟
。当⽤户⾸次访问时将产⽣⼀个新的会话,以后服务器会记住这个会话状态,当会话⽣命周期超时或服务器强制是会话失效时,这个session就不能使⽤了。
常⽤的会话超时的⽅法:
getLastAccessedTime():返回客户端最后⼀次与会话相关联的请求时间。
getMaxInactiveInterval();以秒为单位返回⼀个会话内两个请求最⼤的时间间隔
SetMaxInactiveInterval();设置session对象的有效时间。
⼆、application对象
application对象⽤于保存所有应⽤程序中的公有数据。他在服务器启动时⾃动创建,在服务器停⽌时销毁。当application对象没有被销毁时,所有⽤户都可以共享application对象。与session对象相⽐application对象的⽣命周期更长,类似于系统的全局变量。
2.1、访问应⽤程序初始化参数
application对象提供了对应⽤程序初始化参数的访问⽅法。应⽤程序初始化参数在l⽂件中进⾏设置,l⽂件位于web应⽤所在⽬录下⼤雾WEB-INF⼦⽬录中。在l⽂件中通过<content-param>标记配置应⽤程序初始化参数。
application提供两种访问应⽤程序初始化参数的⽅法:
name:⽤于指定的参数名
2.2、管理应⽤程序环境属性
与session对象相同,也可以在application对象中设置属性。与session对象不同的是,session只是在当前客户的会话范围内有效,当超过保存时间,session对象会被收回;⽽application对象在整个应⽤区域中有效,常⽤的⽅法如下:
getAttributeNames() 获取到application对象所有的属性名。
getAttribute(String name) 从application 对象中获取指定的对象名
setAttribute(String key,Objrct obj) 使⽤指定名称和指定对象在application对象进⾏关联
removeAttribute(String name)从application 对象中去掉指定的名称的属性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论