Application,Session和Cookie的区别

最全的Application,Session和Cookie/cache/hidden/Viewstate/字符串的区别
通俗application和session的区别

1.session是会话变量,只要同一个浏览器没有被关闭,session对象就会存在。因此在同一个浏览器窗口中,无论向服务器发送多少请求,session对象只有一个。 但是如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,但是我们可以通过编写程序进行修改这个session的生命周期的时间。session.setMaxInactiveInterval(10000);//用来设置session的有效期为10000秒,超出这个范围将失效。

并且通过session对象可以存储或者读取客户的相关信息,例如用户名或购物信息等,可以通过session对象的setAttribute(String name,Object obj)方法和getAttribute(String name)的方法实现。注意的是getAttribute()方法的返回值是Object类型,如果将获取到的信息赋给String类型的变量,则需要进行强制类型转换或者调用其的toString()方法。

session.setAttribute("user","小名");
String user=(String)session.getAttribute("user");

2.application它类似于系统的全局变量,用于保存所有程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁的时候,所有用户都可以享用该application对象。它的生命周期可以说是最长的。但是其应用程序初始化的参数是要在web.xml文件中进行设置的,通过标记配置应用程序初始化参数。也就是说同时再打开另一个浏览器,他们使用的都是同一个application对象。

方法 信息量大小 保存时间 应用范围 保存位置
Application 任意大小 整个应用程序的生命期 所有用户 服务器端
Cache 任意大小 可以根据需要设定 所有用户 服务器端
Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端
Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端
Viewstate 小量,简单的数据 一个Web页面的生命期 单个用户 客户端
隐藏域 小量,简单的数据 一个Web页面的生命期 单个用户 客户端
查询字符串 小量,简单的数据 直到下次页面跳转请求 单个用户 客户端
Web.Config文件 不变或极少改变的小量数据 直到配置文件被更新 单个用户 服务器端

1.Application对象
Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合. 下面我们做个在线用户统计的例子来说明这个问题:
(以文件的形式存放网站总访问量)

(1)Global.asax类

     protected void Application_Start(Object sender, EventArgs e)
     {
   
        Application["CurrentGuests"]=0;//初始花为0;
        fileStream = File.Open(Server.MapPath("counts.text"),FileMode.OpenOrCreate);//文件不存在,创建文件
        reader = new StreamReader(fileStream);//要读取的完整路径
        Application["AllGuests"] = Convert.ToInt32(reader.ReadLine(
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ApplicationSessionCookie 都是 Web 应用程序中常用的概念,它们之间存在一些联系和区别。 1. 区别 - Application(应用程序):是在 Web 服务器上运行的全局对象,它代表整个 Web 应用程序。Application 对象可以在整个应用程序中共享数据,也可以在应用程序的多个页面中访问。Application 对象的生命周期与 Web 应用程序的生命周期相同。 - Session(会话):是在 Web 服务器上为每个用户创建的独立对象,它代表用户在 Web 应用程序中的一次会话。Session 对象可以用来存储用户的信息,例如登录状态、购物车信息等。Session 对象的生命周期与用户的会话期间相同。 - Cookiecookie):是在客户端存储的小型文本文件,它可以存储一些用户信息,例如用户的个性化设置、登录状态等。Cookie 对象可以在客户端与服务器之间传递数据。Cookie 对象的生命周期可以由开发人员控制,可以设置为会话期间或者固定时间。 2. 联系 - Application 对象和 Session 对象都是在 Web 服务器上创建的,它们可以用来存储全局和用户相关的数据。 - Session 对象和 Cookie 对象都可以用来存储用户的信息,但是它们之间的区别在于 Cookie 对象是存储在客户端,而 Session 对象是存储在服务器端。 - Cookie 对象可以用来实现用户跟踪功能,而 Session 对象可以用来实现用户认证和授权功能。 总的来说,ApplicationSessionCookie 都是 Web 应用程序中非常重要的概念,它们各自有自己的作用和特点,开发人员可以根据实际需求选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值