ASP.NET共有七个内置对象,以下分别介绍:
1.Page对象
Page类以动态方式创建HTML标记并传送回浏览器,同时处理请求和响应,并且会创建服务器控件。
Web Form网页被编译成了Page对象,因此可以使用Page对象的属性,方法和事件。
下面举例说明 Page_Init,Page_Load和Page_Unload事件。
Page_Init事件的例子:
Web Form网页的执行从网页初始化开始,此时触发Page对象的Init事件。Init的用途是设置网页或者控件的初始 值。同一个网页只会触发一次Init事件, 当客户返回Web Form数据时,不会再次触发Init事件。
<
html
>
<
head
>
<
script language
=
"
C#
"
runat
=
"
server
"
>
//Page_Init事件处理过程
void
Page_Init(Object sender,EventArgs e)
{
将条种颜色添加到select选择框中
SizeSelect.Items.Add("black");
SizeSelect.Items.Add("red");
SizeSelect.Items.Add("blue");
SizeSelect.Items.Add("green");
}
void
Apply_Click(Object sender,EventArgs e)
{
//设置span中的文本字体颜色为列表框中的值
Span1.Style["color"]=SizeSelect.Value;
}
void
AddToList_Click(
object
Source,EventArgs e)
{
//将输入框中Text1的值添加到列表框中
SizeSelect.Items.Add(Text1.Value);
}
</
script
>
</
head
>
<
body
>
<
form runat
=
"
server
"
>
请选择颜色:
</
br
>
<%--
这里声明了一个HtmlSelect,提供给用户选择字体颜色
--%>
<
select id
=
"
SizeSelect
"
runat
=
"
server
"
></
select
>
<
input type
=
"
button
"
runat
=
"
server
"
Value
=
"
应用
"
OnServerClick
=
"
Apply_Click
"
>
<
p
>
向列表中添加新字体颜色
<
br
>
<
input type
=
"
text
"
id
=
"
Text1
"
runat
=
"
server
"
>
<
input type
=
"
button
"
runat
=
"
server
"
Value
=
"
添加
"
OnServerClick
=
"
AddToList_Click
"
>
<
input type
=
"
button
"
id
=
"
Text2
"
runat
=
"
server
"
OnOk
=
"
Ok_Clock
"
/></
select
>
</
p
><
span id
=
"
Span1
"
runat
=
"
server
"
>
单击这里改变字体的颜色
</
span
>
</
form
>
</
body
>
</
html
>
当用户单击网页上的添加按钮时,会将数据返回到服务器,此时网页被重新加载,但并不会再次触发PAGE对象的Init事件。
Page_load事件的例子
网页完成初始化后便会加载,从而触发Page对象的Load事件,此事件也可以用来设置网页控件的初始值,如同Init事件一样。但是 与Init不同的是,当窗体数据返回到服务器时,Page对象的Load事件会被再度触发。
<
html
>
<
head
>
<
script language
=
"
C#
"
runat
=
"
server
"
>
void
Page_Load(Object sender,EventArgs e) //为Page_Load事件,唯一与上面例子不同之处
{
SizeSelect.Items.Add("black");
SizeSelect.Items.Add("red");
SizeSelect.Items.Add("blue");
SizeSelect.Items.Add("green");
}
void
Apply_Click(Object sender,EventArgs e)
{
Span1.Style["color"]=SizeSelect.Value;
}
void
AddToList_Click(
object
Source,EventArgs e)
{
SizeSelect.Items.Add(Text1.Value);
}
void
Ok_Clock(
object
Source,EventArgs e)
{
SizeSelect.Items.Add(Text1.Value);
}
</
script
>
</
head
>
<
body
>
<
form runat
=
"
server
"
>
请选择颜色:
</
br
>
<%--
这里声明了一个HtmlSelect,提供给用户选择字体颜色
--%>
<
select id
=
"
SizeSelect
"
runat
=
"
server
"
></
select
>
<
input type
=
"
button
"
runat
=
"
server
"
Value
=
"
应用
"
OnServerClick
=
"
Apply_Click
"
>
<
p
>
向列表中添加新字体颜色
<
br
>
<
input type
=
"
text
"
id
=
"
Text1
"
runat
=
"
server
"
>
<
input type
=
"
button
"
runat
=
"
server
"
Value
=
"
添加
"
OnServerClick
=
"
AddToList_Click
"
>
<
input type
=
"
button
"
id
=
"
Text2
"
runat
=
"
server
"
OnOk
=
"
Ok_Clock
"
/></
select
>
</
p
><
span id
=
"
Span1
"
runat
=
"
server
"
>
单击这里改变字体的颜色
</
span
>
</
form
>
</
body
>
</
html
>
第一次访问此网页,下拉列表框中出现4个选项,分别是"black","red","blue"和"green",结果跟上面的例子一样。
在文本框中输入"Purple",单击"添加"按钮时,下拉列表框出现了Purple,但重复出现了 "black","red","blue"和"green"。这是因为Page对象的Load事件被再次触发而重新将这4项添加了一遍。
可以用Page对象的IsPostBack属性,即在Page_Load中加入一行if(!Page.IsPostBack)来判断网页是何种情况下加载。
Page对象的Page_Unload事件
在网页完成处理并且用户信息被写入客户端之后,Page对象的Unload事件会被触发,Unload事件通常用来关闭文件,取消数据庫的连接或者释放对象。
2.Response对象
Respone对象派生自HttpResponse类, 用来决定何时或如何将输出由服务器发送到客户端。
Response.Write方法是Response对象最简单也是最常用的方法,用来向游览器输出信息。
Response.Write("这是最简单的用法");
注:如果要输出的信息中包含双引号,必须将它改写为两个双引号或一个单引号,如
Response.Write("<A Href='http://www.tom.com'>Tom 网</A>");
Response.Write("<A Href=""http://www.tom.com"">Tom网</A>");
Response对象提供了3个方法来处理缓冲区的数据。
1)Response.clearConent;清除
清除存放在缓冲区尚未发送到客户端的输出。
void
Page_Load(Object sender,EventArgs e)
{
Response.BufferOutput=true;
Response.Write("Hello ");
Response.ClearContent();
Response.Write("World");
}
屏幕将显示World字样
2)Response.Flush:
把存放在缓冲区中输出发送到客户端,同时清除缓冲区
void
Page_Load(Object sender,EventArgs e)
{
//启用缓冲处理
Response.BufferOutput=true;
Response.Write("Hello ");
//把存入在缓冲区的输出发送到客户端并清除缓冲区
Response.Flush();
Response.Write("World");
//清除存放在缓冲区尚末发送到客户端的输出
Response.ClearContent();
}
结果输出Hello字样
原因是通过Respnose.Write("World")语句放到缓冲区的"World"语句被紧跟其后的ResponseClearContent语句清除,因此没有显示在屏幕上。
3)Respnose.ClearHeaders:
清除所有存放在缓冲区的HTTP标头。
还可以利用Response对象的Redirect方法实现地址重向,使浏览器在显示主页之后自动定向到另外的网页。
pn
=
"
http://www.google.cn/
"
;
Response.Redirect(pn);
3.Request对象
Request对象用来捕获由客户端返回服务器端的数据,比如用户输入的表单数据,保存在客户机上的Cookie等。
如果在HtmlForm控件中将Method属性设置为"Get",表单将以字符串的形式附加在网址的后面返回服务器端。
此时,用Request对象的QueryString属性来获取表单数据。
如果Method属性设置"Post",必须用Request对象的Form属性来捕获表单数据。
下面是一个用Request对象来获取表单数据的例子:
1.Page对象
Page类以动态方式创建HTML标记并传送回浏览器,同时处理请求和响应,并且会创建服务器控件。
Web Form网页被编译成了Page对象,因此可以使用Page对象的属性,方法和事件。
下面举例说明 Page_Init,Page_Load和Page_Unload事件。
Page_Init事件的例子:
Web Form网页的执行从网页初始化开始,此时触发Page对象的Init事件。Init的用途是设置网页或者控件的初始 值。同一个网页只会触发一次Init事件, 当客户返回Web Form数据时,不会再次触发Init事件。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//Page_Init事件处理过程
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
将条种颜色添加到select选择框中
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
//设置span中的文本字体颜色为列表框中的值
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
//将输入框中Text1的值添加到列表框中
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
当用户单击网页上的添加按钮时,会将数据返回到服务器,此时网页被重新加载,但并不会再次触发PAGE对象的Init事件。
Page_load事件的例子
网页完成初始化后便会加载,从而触发Page对象的Load事件,此事件也可以用来设置网页控件的初始值,如同Init事件一样。但是 与Init不同的是,当窗体数据返回到服务器时,Page对象的Load事件会被再度触发。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
第一次访问此网页,下拉列表框中出现4个选项,分别是"black","red","blue"和"green",结果跟上面的例子一样。
在文本框中输入"Purple",单击"添加"按钮时,下拉列表框出现了Purple,但重复出现了 "black","red","blue"和"green"。这是因为Page对象的Load事件被再次触发而重新将这4项添加了一遍。
可以用Page对象的IsPostBack属性,即在Page_Load中加入一行if(!Page.IsPostBack)来判断网页是何种情况下加载。
在网页完成处理并且用户信息被写入客户端之后,Page对象的Unload事件会被触发,Unload事件通常用来关闭文件,取消数据庫的连接或者释放对象。
2.Response对象
Respone对象派生自HttpResponse类, 用来决定何时或如何将输出由服务器发送到客户端。
Response.Write方法是Response对象最简单也是最常用的方法,用来向游览器输出信息。
Response.Write("这是最简单的用法");
注:如果要输出的信息中包含双引号,必须将它改写为两个双引号或一个单引号,如
Response.Write("<A Href='http://www.tom.com'>Tom 网</A>");
Response.Write("<A Href=""http://www.tom.com"">Tom网</A>");
Response对象提供了3个方法来处理缓冲区的数据。
1)Response.clearConent;清除
清除存放在缓冲区尚未发送到客户端的输出。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
屏幕将显示World字样
2)Response.Flush:
把存放在缓冲区中输出发送到客户端,同时清除缓冲区
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
//启用缓冲处理
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
//把存入在缓冲区的输出发送到客户端并清除缓冲区
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
//清除存放在缓冲区尚末发送到客户端的输出
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
结果输出Hello字样
原因是通过Respnose.Write("World")语句放到缓冲区的"World"语句被紧跟其后的ResponseClearContent语句清除,因此没有显示在屏幕上。
3)Respnose.ClearHeaders:
清除所有存放在缓冲区的HTTP标头。
还可以利用Response对象的Redirect方法实现地址重向,使浏览器在显示主页之后自动定向到另外的网页。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
3.Request对象
Request对象用来捕获由客户端返回服务器端的数据,比如用户输入的表单数据,保存在客户机上的Cookie等。
如果在HtmlForm控件中将Method属性设置为"Get",表单将以字符串的形式附加在网址的后面返回服务器端。
此时,用Request对象的QueryString属性来获取表单数据。
如果Method属性设置"Post",必须用Request对象的Form属性来捕获表单数据。
下面是一个用Request对象来获取表单数据的例子:
protected void Apply_click(object sender, EventArgs e)
{
InputPanel.Visible = false; //InputPanel重设为不可视
ResultPanel.Visible = true;//ResultPanel重设为可视
showname.Text = Request.Params["name"];
showmail.Text = Request.Params["email"];
}
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server" method="post">
<div>
<asp:Panel ID="InputPanel" runat="server" Visible="true">
<fieldset>
<legend>个人资料</legend>
姓名:<asp:TextBox runat="server" ID="name" /><br />
E-Mail:<asp:TextBox runat="server" ID="email" />
</fieldset>
<asp:Button runat="server" Text="确定" OnClick="Apply_click" />
</asp:panel>
<asp:Panel ID="ResultPanel" runat="server" Visible="false">
<asp:Label runat="server" ID="showname" ForeColor="Blue" />您好:<br />
您的E-Mail为:<asp:Label runat="server" ID="showmail" ForeColor="Blue" />
</asp:Panel>
</div>
</form>
</body>
</html>
4.Server对象
Server对象派生自HttpServerUtility类,提供服务器端最基本的属性与方法。
常用的属性性和方法包括:
MachineName返回服务端机器名
ScripTimeout返回请求超时的时间
MapPath将虚拟路径转换为实际路径。
5.Application对象
由于服务器在处理完游览器的请求之后就会中断连接,所以服务器没有记录游览器的任何信息。
Application对象可以生成一个全部Web应用程序都能存取的变量,用来记录整个网站的信息,包括上线人数,在线名单等。
下面是一个如何存取Application对象变量值的例子:protected void Page_Load(object sender, EventArgs e)
{
//产生Application变量并指定初始值,
//所有的Application变量都放在Application集合中由Application对象管理
Application.Add("法国", "巴黎");
Application.Add("英国", "伦敦");
Application.Add("西班牙", "马德里");
//获取集合内记录的变量数目,用for循环分别取出各Application变量
for (int i = 0; i < Application.Count; i++)
{
//通过索引取出Application变量
Response.Write(("申奥国家:" + Application.GetKey(i) + " "));
Response.Write("申办城市:" + Application[i] + " " + " ");
}
Application.Clear();//清除所有的Application变量
}
6. Session对象 Session对象用来存储跨网页程序的变量或对象,只针对单一用户。即各个连接的客户都有各自的Session对象变更。
下面是一个设置超时值的例子:protected void Page_Load(object sender, EventArgs e)在一分钟内不断刷新,Counter值会不断累加。一分钟(到达超时值)后变为1。
{
Session.Timeout = 1;
if (Session["Counter"] != null)
{
int i = (int)Session["Counter"];
i++;
Session["Counter"] = (object)i;
}
else
{
Session["Counter"] = 1;
} string n;
n = Convert.ToString(Session["Counter"]);
counter.Text = "这是您第" + n + "次访问本网站";
}
7.Cookie对象
Cookie对象可以让用户再次访问某站点时,应用程序检索以前保存的信息。
它可以记录游览者的个人信息,游览器类型等。
它分别隶属于Request对象和Response对象,每一个Cookie变量都被不同的Cookie对象所管理。
下面的示例是定义一个Cookie对象并获取其中的数据:
<form id="form1" runat="server" Method="Post">
<div>
<asp:Label runat="server" ID="name" Visible="false" ForeColor="Blue"/> </div>
<asp:Button ID="Button1" runat="server" Text="获取Cookie"
οnclick="Button1_Click" />
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["user"] == null)
{
HttpCookie cookie = new HttpCookie("user"); //建立一个名为"user"的Cookie对象
cookie.Values.Add("name", "steven"); //为Cookie对象加入名为"name"的数据
Response.AppendCookie(cookie);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie = Request.Cookies["user"];
if (cookie != null) //获取Cookie中的值
{
string cookiename = cookie.Values["name"];
cookiename = "Cookie上的name为" + cookiename;
name.Text = cookiename;
name.Visible = true;
Button1.Visible = false;
}
}