【www.gdgbn.com--面向对象编程】

asp教程.net application cookie sessions server内建对象

asp.net教程内建了许多对象,包括application、response、request、cookie、sessions、cache、server和viewstate等对象。通过这些对象,可以提供网站一些必不可少的功能,例如得到文件的绝对路径、在线人数、访问网站总人数、网上商店购物框等。
  cookie对象采用键/值对的方法记录数据,语句mycookie.expires=datetime.now.addhours(1)指定cookie中数据何时失效,这里是1小时后失效。如果不指定失效时间,退出网页立即失效。
 
 

写入

cookie的值的方法如下:

 

httpcookie mycookie=new httpcookie("userinfo");

mycookie.value=2.tostring();

mycookie.expires=datetime.now.addhours(1); response.cookies.add(mycookie);

取出cookie的值的方法如下:

httpcookie mycookie=request.cookies["userinfo"];

 

int num=convert.toint16(mycookie.

 

value
 

);

 
(4)application
 
application_onstart是在整个asp.net应用首先被触发的事件,也就是在一个虚拟目录中第一个asp.net程序执行时触发,application_onend就正好相反,在整个应用停止时被触发(通常发生在服务器被重启/关机时)。application_onrequeststart和application_onrequestend则是在每一个asp.net程序被请求时就发生,也就是说客户访问一次一个asp.net程序,这两个事件就会被触发。我们可以从下面的程序看到他的应用.我们先建立一个global.asax,内容如下:


<script language="c#" runat="server">
void application_onbeginrequest(object sender, eventargs e)
{
response.write("request is starting...<br>");
}
void application_onendrequest(object sender, eventargs e)
{
response.write("request is ending...<br>");
}
</script>


    然后将其放到本虚拟目录的根目录下,然后我们随便打开一个什么aspx文件
我们在global.asax中定义的语句request is starting...和request is ending...这个不是我们在这个文件中独加的,我们将会再任何一个asp.net文件中看到它的影子


(1)response对象

  使用response对象可以直接发送信息在浏览器中显示,实现web服务器的下载文件,重定向浏览器中显示另一个网页,设置cookie的值等。

  response.redirect("http://www.111cn.net/"); 

(2)request对象

  第一,用来在不同网页之间传递数据,

  第二,web服务器可以使用request对象获取用户所使用的浏览器信息,

  第三,web服务器可以使用response对象显示web服务器的一些信息

  最后,可以使用response对象获取cookie的信息。

  一般采用如下格式:url?数据名称=数据值&数据名称=数据值。例如,

  传:navigateurl="e11_3.aspx/?num=12345&name=张三"             

  取:request["num"],request["name"];

(3)cookie

  是不是第一次访问和访问者的一些信息,当从第一个网页转到第二个网页时,第一个网页中建立的所有变量和对象都将不存在。例如一个网上商店,访问者可能从网站中不同的网页选取各类商品,那么用什么办法记录该访问者选取的商品,也就是一般所说的购物筐如何实现。用cookie对象可以解决以上问题。

  cookie为网站保存用户信息提供了一种有用的方法。支持cookie的浏览器允许网站将一小段文本信息存储到浏览器所在的计算机中。这样当用户下次访问网站时,网站就可以检索到以前保存的信息。

 


当网站中的网页从无人访问到第一次被访问,网站的

httpcookie ck = request.cookies["cktest"];
if (ck == null)
{
ck = new httpcookie("cktest");
ck.value = "123";

ck.expires = datetime.now.addseconds(20);//20秒的有效期
response.cookies.add(ck);
response.write("new ck");
}
else
{
response.write(ck.value.tostring());
}

//在一个cookie中储存多个信息
/**//*
httpcookie cookie = new httpcookie("cktest");
cookie.values.add("v1","1");
cookie.values.add("v2","2");
cookie.values.add("v3","3");
response.appendcookie(cookie);


httpcookie cookies = request.cookies["cktest"];
string value1 = cookies.values["v1"];
string value2 = cookies.values["v2"];

response.write(value1 + value2);

*/

 

application对象(一个网站只有一个)自动被创建,如果已没有浏览器访问网站中的网页或global.asax文件被修改,application对象被自动撤销,这个期间是application对象的生存期。  因此application的变量适合在网页之间传递信息。application对象主要有以下用途:存储记录在线人数或访问网站总人数的变量;存储网站共用最新消息,供所有网页更新;记录网站中各网页同一条广告被单击的次数;存储供所有网页使用的数据库教程数据;不同用户之间通信,例如多用户聊天室,多用户游戏等。

 

(5) session

    当用户使用浏览器进入网站访问网站中的第一个网页时,web服务器将自动为该用户创建一个session对象,在session对象中可以建立一些变量,这个session对象和session对象中的变量只能被这个用户使用,其他用户不能使用。

    当用户浏览网站中的不同网页时,session对象和存储在session对象中的变量不会被清除,这些变量始终存在。当浏览器离开网站或超过一定时间和网站没有联系,session对象被撤销,同时存储在session中的变量也不存在了。用在session对象中建立的变量的方法,可以在网页之间传递数据。在asp中,session对象的功能本质上是用cookie实现的,如果用户将浏览器上面的cookies设置为禁用,那么session就不能工作。但在asp.net中,如在web.config文件中,将<sessionstate cookieless="false" />设置为true,不使用cookies,session也正常工作。

(6)server

       server对象提供对web服务器资源进行访问的方法,主要包括:得到服务器的计算机名称,设置脚本程序失效时间,将html的特殊标记转变为ascii字符,得到文件的真实路径等.  

(7)cache

 


对象生存期和application对象生存期一样长,因此,也可以在cache对象中建立一些网站中所有网页可使用的公用变量。例如,在cache对象中增加一个dataset类变量用语句:cache[“mydataset”]=dataset1;取出dataset类变量用语句:dataset dataset1=(dataset)cache["mydataset"];和application对象不同,在web服务器内存比较紧张时,为了提高web服务器的性能,cache对象采用最近少使用(lru)方法自动清除不常用的变量和对象。因此每次取出cache对象中的变量或对象,要检查一下是否为null,如果是null,则要重新建立变量或对象

本文来源:http://www.gdgbn.com/jsp/28703/