导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法。其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Application对象、Session对象和Server对象。

一、基础把握

1,HttpApplication 类

定义 ASP.NET 应用程序中的所有应用程序对象通用的方法、属性和事件。此类是用户在 global.asax 文件中所定义的应用程序的基类。

1,1,Application对象

为所有用户提供共享信息,当站点服务器开启时,Application对象被创建。当站点关闭时,Application对象被销毁。比如说,服务器重新启动,Application中的信息就丢掉了。

1,1,1,Application对象的方法

Lock:锁定脚本中所有变量,确保只有当前用户控制该页面,当调用Unlock方法是,当前用户将失去对应用程序的控制。

说明:防止多人同时操作数据,并发控制。

2,HttpServerUtility类

提供用于处理 Web 请求的 Helper 方法。

2.1,Server对象

Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。

2,1,1,Server对象属性

ScriptTimeout:用于指定脚本在终止之前在服务器上运行的时间周期;MachineName:用于获取服务器的计算机名

2,1,2,Server对象方法

Execute、Transfer、HTMLEncode等。

3,HttpSessionState类

提供对会话状态值以及会话级别设置和生存期管理方法的访问。

3.1,Session对象

Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。

附注:

global.asax文件:是一个文本文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。

二、图形说明

说明:我们可以讲服务器看做是Server对象。然后,可以将部署在服务器上的应用程序,看做是Application对象。每个客户端请求服务器,建立的链接,称为一个会话,也就是一个Session对象。

三、实例应用

简单的做一个历史访问人数和当前在线人数的统计,通过对Application对象、Server对象和Session对象的应用。

1,Web窗体设计

说明:程序被部署时,在线和历史均为0。每一次会话开始增添1个,会话结束减少一个。

2,代码(挑主要)

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">namespace WebApplication2
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
Application["totol"] = 0;
Application["online"] = 0;
} protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["totol"] = (int)Application["totol"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();
}
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}
</span></span>

说明:这是在global.asax文件中的代码。有时候打开VS,里面没有这个文件,得手动添加。项目文件——添加——新建项——全局应用程序类

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">{
public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Label3.Text = Application["totol"].ToString();
this.Label4 .Text =Application ["online"].ToString ();
}
}
}</span></span>

3,结果

说明:每打开一次会话(用客户端浏览器访问一次),在线人数就+1,关闭一次会话就-1(人数不会立刻减少,有延时)。如果要想马上看到效果,就得对session的timeout属性进行设置。

四、个人感受

Asp.net的六大对象就简单的介绍完了。在学习这一部分的过程中,就想起了做机房的时候,在线人数的显示,是通过查数据库来实现的。第一次做机房的时候,就在想别的在线人数的显示是怎么回事。感觉挺容易的,但当时实现起来真的很难。

现在呢,才发现,在Web程序中,仅仅只是通过一个对象的属性就可以解决了。额,这也算是C/S 和B/S各有各的特点吧。

ASP.NET(二):Application、Session和Server对象的更多相关文章

  1. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  2. ASP.NET:Application,Session,Cookie,ViewState和Cache之间的区别(转)

    在ASP.NET中,有很多种保存信息的对象.例如:Application,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了更清楚 ...

  3. Application对象、Session对象、Cookie对象、Server对象初步认识

    Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Applicatio ...

  4. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  5. ASP.NET 使用application和session对象写的简单聊天室程序

    ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...

  6. ASP.NET整理:Cookie,Application,Session,页面生命周期

    一.设置Cookie的2种方式 1.    Repsonse.Cookie[“名”] = 值; 2.    HttpCookie hcCookie = new HttpCookie(“名”,值); h ...

  7. ASP.NET之Application、Session和Cookie的差别

    在Asp.net中Application.Session和Cookie都能够保存信息,那么它们有什么不同呢? 一.首先Application是在server端建立一个状态变量,存储于server的全局 ...

  8. 初识 Asp.Net内置对象之Server对象

    Server对象 Server对象定义了一个于Web服务器相关联的类提供对服务器上的方法和属性的访问,用于访问服务器上的资源. Server对象的常用属性 属性   MarhineName 获取服务器 ...

  9. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

随机推荐

  1. 分布式系统ID生成办法

    前言 一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以这种情况下我们并没有对此给 ...

  2. 洛谷P4017 最大食物链计数

    拓扑排序板子题 #include <iostream> #include <cstdio> #include <cstring> #include <queu ...

  3. 浅析ES6中的iterator

    1.iterator迭代器必须保证其遍历终止条件可控,否则会形成死循环demo: //会用到iterator接口的场合 //1.for...of循环 //2. ...解构表达式 const obj = ...

  4. android布局带参返回

    package com.lxj.lesson2_3ID19; import com.example.lesson2_3_id19.R; import com.lxj.other.AgeActivity ...

  5. JSP serverlet区别与联系

    jsp是html包含java servlet是java包含html jsp请求到tomcat---tomcat封装了jsp到servlet实现. 所以jsp请求时候,会自动创建session 而不用在 ...

  6. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)

    适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.1 [发行版 10.1 到 12.1]Oracle Database ...

  7. kafka 安装以及测试

    1,下载kafka 并进行解压 http://mirrors.cnnic.cn/apache/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz 2,启动Zookeeper  ...

  8. 用 Deployment 运行应用【转】

    从本章开始,我们将通过实践深入学习 Kubernetes 的各种特性.作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用,这就是本章的内容. Deployment 前面我们已经了解到,Kub ...

  9. end和sep的使用方法

    end: 默认是换行'\n',表示以什么结尾,比如以, | \n 等 方法: 默认end = '\n' a b c 如果end = ' ' a b c sep: 默认是空格' ' 表示两个字符之间用什 ...

  10. Bootstrap历练实例:成功按钮

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...