对session,application,ServletContext的理解

首先来说前两者与后者的性质不同,sesstion与application是作用域,

所谓"作用域"就是"信息共享的范围",也就是说一个信息能够在多大的范围内有效。

Web交互的最基本单位为HTTP请求。每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话。

session

当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session

当用户发送一个http请求到服务器端时,服务器会先检查请求中是否含有sessionid(存在cookie中或者在url中),这是独一无二的号码,是浏览器和服务器中的session一一对应的。

session的常用方法

1、 getAttribute(String name)

2、 getAttributeNames()

3、 getCreationTime()

4、 getId()

5、 getLastAccessedTime()

6、 getMaxInactiveInterval()

7、 removeAttribute(String name)

8、 setAttribute(String name , java.lang.Object value)

application

application对象用于保存应用程序中的共有数据。他在服务器启动时自动创建,在服务器停止时销毁。

当application对象存在时,所有用户都可以共享该application对象。与session相比application对象生命周期更长,范围更大,类似于系统的全局变量。

application对象的主要方法:

1、 getAttribute(String name)

2、 getAttributeNames() 

3、 getInitParameter(String name)

4、 getServletInfo()

5、 setAttribute(String name , Object object)

ServletContext

ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

它是一个域对象,也就是可作为上面介绍的两个的对象。

方法:

1、setAttribute(name,value);name是String类型,value是Object类型;往域对象里面添加数据,添加时以key-value形式添加

2、getAttribute(name);根据指定的key读取域对象里面的数据

3、removeAttribute(name);根据指定的key从域对象里面删除数据

4、getServletContext().getInitParameter(name);//根据指定的参数名获取参数值

5、getServletContext().getInitParameterNames();//获取所有参数名称列表

6、getServletContext().getRealPath(path),根据相对路径获取服务器上资源的绝对路径

7、 getServletContext().getResourceAsStream(path),根据相对路径获取服务器上资源的输入字节流

8、getServletContext().getContextPath();获取当前工程名字
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值