application对象

主要知识点

1.Application\Server对象的简介

Application对象:为所有用户提供共享信息,它是一直存在的,从该应用程序启动直到该应用程序停止。比如说,服务器重新启动,Application中的信息就丢掉了。

Application对象的方法

方法

说明

Lock

锁定Application对象

Unlock

取消锁定

说明:Lock方法和Unlock方法是很重要的,因为任何客户都可以存取Application对象,如果正好两个客户同时更改一个Application对象的值怎么办?可以利用Lock方法,先将Application对象锁定,以防止其他客户端更改。更改后,再利用Unlock解锁。

Server对象:提供服务器端的属性和方法,主要用来创建COM对象和Scripting组件、转化数据格式、管理其他页的执行。

Server对象的属性

属性

说明

ScriptTimeOut

规定脚本文件的最长执行时间,超过时间就停止执行脚本,其默认值为90秒

Server对象的方法

方法

说明

CreateObject

用于创建已注册到服务器的Active组件、应用程序或脚本对象,在ASP.NET中用的不多

HTMLEncode

将字符串转换成HTML格式输出

HTMLDecode

与HTMLEncode相反,还原为原来的字符串

URLEncode

将字符串转换成URL的编码输出

URLDecode

与URLEncode相反,还原为原来的字符串

MapPath

将路径转化为物理路径

Execute

停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行Execute方法后面的语句

Transfer

停止执行当前网页,转到新的网页执行。和Execute不同的是,执行完毕后不返回原网页,而是停止执行过程

2.Application对象的使用

(1)利用Application存储信息

可以把变量、字符串信息保存在利用Application中,语法:

Application[“Application名字”]=变量、常量、字符串信息或表达式

例如:

Application.Lock();

Application["user_name"] = "张三";

Application["city"] = "南京";

Application.UnLock();

Response.Write(Application["user_name"]);

例1:网络聊天室

创建一个页面,命名为“chat.aspx”,在页面中添加一个文本框和一个命令按钮,HTML代码如下:

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>无标题页</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:TextBox ID="txt_Content" runat="server"></asp:TextBox>

<asp:Button ID="btn_Submit" runat="server" Text="提交" onclick="btn_Submit_Click"/>

</div>

</form>

</body>

</html>

“提交”按钮的单击事件代码如下:

protected void btn_Submit_Click(object sender, EventArgs e)

{

string mywords=Request["txt_content"];

Application.Lock();

Application["chat_content"]=Application["chat_content"]+"<br>"+mywords;

Response.Write(Application["chat_content"]);

Application.UnLock();

 

}

例2:网站计数器

开发计数器有很多方法,可以用文本文件,也可以用数据库,但最简单的方法就是使用Application对象。

创建一个页面“jishuqi.aspx”,页面中添加一个标签,HTML代码如下:

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>无标题页</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:Label ID="lbl_message" runat="server"></asp:Label>

</div>

</form>

</body>

</html>

后台代码如下:

protected void Page_Load(object sender, EventArgs e)

{

Application.Lock();

Application["user_number"] = Convert.ToInt32(Application["user_number"] )+ 1;

Application.UnLock();

lbl_message.Text = "您是第" + Application["user_number"] + "位访客";

}

上面例子可以显示访问人数,但一旦服务器重新启动,Application就会丢失数据,访客人数为0。要解决该方法可用到“Global.asax”文件。

3.Server对象的使用

(1)ScriptTimeOut属性

该属性主要用来防止某些可能进入死循环的错误导致服务器过载问题。对于运行时间较长的页面可能需要增大这个值,比如当上传一个非常大的文件时。修改方法如下:

Server.ScriptTimeout = 300;

(1) HTMLEncode方法

该方法用来转化字符串,它可以将字符串中的HTML标记字符转换为字符实体,如将<转化为&lt;,将>转化为&gt;。该方法在需要输出HTML语句时非常有用。

例:向浏览器输出HTML代码

前台HTML代码如下:

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>无标题页</title>

</head>

<body>

<form id="form1" runat="server">

<asp:Label ID="lbl_message1" runat="server"></asp:Label>

<br />

<asp:Label ID="lbl_message2" runat="server"></asp:Label>

<div>

</div>

</form>

</body>

</html>

后台代码如下:

protected void Page_Load(object sender, EventArgs e)

{

lbl_message1.Text = "<a href='http://www.sohu.com'>搜狐</a>";

lbl_message2.Text = Server.HtmlEncode("<a href='http://www.sohu.com'>搜狐</a>");

}

说明:当出现引号嵌套时,内层引号要变为单引号或者两个双引号。

(2) MapPath方法

在页面中,一般使用的是虚拟路径(相对路径),但是在对数据库文件操作或其他文件操作时就必须使用物理路径,利用MapPath方法,就可以将虚拟路径转化为物理路径。

例题:显示文件的物理路径

HTML代码如下:

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>无标题页</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:Label ID="lbl_message" runat="server"></asp:Label>

</div>

</form>

</body>

</html>

后台代码如下:

protected void Page_Load(object sender, EventArgs e)

{

lbl_message.Text = Server.MapPath("server.aspx");

}

4.学生上机练习

(1)请在自己的个人主页上加上访问人数。

(2)请编写程序实现一个简单的聊天室,要能显示发言人姓名、发言内容和发言时间。

posted on 2011-03-08 11:34  绝剑天下  阅读(2249)  评论(1编辑  收藏  举报