分享
 
 
 

【ASP.NET基础】ASP.NET内置对象

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

准确地说,asp.net并没有内置对象这一说,jsp里确实把 request、response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已。

在 Web 中处于中心的是 Web 服务器,用来处理客户端的 HTTP 请求。由于 HTTP 是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应。

1.【Request】

Request封装了客户端请求信息。Request的常见属性如下:

属性名

值类型

说明

applicationPath

String

获取请求的资源在网站上的根路径

ContentEncoding

Encoding

设置请求对象的编码

Cookies

HttpCookieCollection

客户端发送到服务器的Cookie集合

QueryString

NameValueCollection

当前请求的查询字符串集合

UrlReferrer

Url

获取用户由哪个url跳转到当前页面

2.【Response】

Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。

Response常用属性如下:

属性名

值类型

说明

Charset

string

表示输出流的所使用的字符集

ContentEncoding

Encoding

设置输出流的编码

ContentLength

Int

输出流的字节大小

ContentType

string

输出流的HTTP MIME类型

Cookies

HttpCookieCollection

服务器发送到客户端的Cookie集合

Output

TextWriter

服务器响应对象的字符输出流

RedirectLocation

string

将当前请求重定向

Response常用方法

属性名

返回值类型

说明

AppendCookie

void

向响应对象的Cookie集合中增加一个Cookie

Clear

void

清空缓冲区中的所有内容输出

Close

void

关闭当前服务器到客户端的连接

End

void

终止响应,并且将缓冲区中的输出发送到客户端

Redirect

void

重定向当前请求

3.【Server】

Server对象是用于获取服务器的相关信息的对象。它常用方法如下:

属性名

返回值类型

说明

Execute

void

执行指定的资源,并且在执行完之后再执行本页的代码

HtmlDecode

string

消除对特殊字符串编码的影响

HtmlEncode

string

对特殊字符串进行编码

MapPath

string

获取指定相对路径在服务器上的物理路径

Transfer

void

停止执行当前程序,执行指定的资源

UrlDecode

string

对路径字符串进行解码

UrlEncode

string

对路径字符串进行编码

4.【session】

Session对象用来保存与特定用户相关的信息,Session中的数据保存在服务器端,在客户端需要的时候创建Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。

在asp.net中Session的默认生命周期是20分钟,也就是当我们在9:00的时候设置了一个Session,如果在9:20之前客户端没有任何请求,那么它的生命周期就到9:20分钟结束。但是一旦用户在9:19又向服务器发送了一个请求,那么这个Session现在的生命周期就是在当前时间的基础上再加上20分钟,也就是此时这个Session的生命周期是到9:39结束。

Session具有以下特点:

Session中的数据保存在服务器端;

Session中可以保存任意类型的数据;

Session默认的生命周期是20分钟,可以手动设置更长或更短的时间。

假设我们要设置一个Session用来保存用户名,这个Session的名字是“UserName”,值是“sa”,代码如下:

Session[“UserName”]=”sa”;

一个网站里用到 Session 的地方肯定不止一个,所以在设置和获取 Session 的时候通过 Session 的名在来操作,并且 Session 被设置成能存储任意类型的对象(即 Object 类型),所以获取 Session 的时候要根据设置的时候的实际类型进行响应的强制类型转换(当然如果在 Session 中存放像 int/byte/short 这样的数据类型,获取 Session 的值算是一种拆箱操作而不是强制类型转换),对于上面的 Session ,获取 Session 的值的代码如下:

stringusername=(string)Session[“UserName”];

对于上面的代码,有个问题需要注意:当没有设置相应的 Session 或者 Session 因为超过生命周期而被销毁时,上面的代码有可能抛出异常。我们可以先判断是否存在指定名称的 Session,如果不存在就不用获取了,仅当存在的情况下才获取 Session 的值,上面的代码可以改进如下:

stringuserName;if(Session["UserName"]!=null)

{//当指定名称的Session存在时,获取指定Session的值userName=(string)Session["UserName"];

}

5.【Cookie】

Cookie 对象和 Session 对象一样也是用来保存特定的用户相关的数据,不过 Session 不同的是 Cookie 保存在客户端而不是服务器上,每次客户端发出请求的时候都会把 Cookie 一起发送到服务器,服务器每次响应客户端请求的时候会重新把 Cookie 发送到客户端保存。

Cookie 保存数据有以下特点:

Cookie 中的数据保存在客户端;

Cookie 中只能保存字符串类型的数据,如果需要在Cookie中保存其它类型数据,需要将其转换成字符串类型后保存;

Cookie 也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。

同 Session 的情况一样,有可能在一个网站中使用到的 Cookie 不止一个,我们仍通过 Cookie 的名称来区分不同的 Cookie。

设置 Cookie 的过程就是在服务器的响应对象 Response 的 Cookie 集合中增加一个 Cookie ,Response 对象会把这个 Cookie 集合中的所有 Cookie 都发送客户端。代码如下(仍以保存用户名为例):

HttpCookie cookie =newHttpCookie("UserName","sa");

Response.Cookies.Add(cookie);

获取 Cookie 就是从客户端的请求对象中找到对应名称的 Cookie,当然也有可能出现 Cookie 不存在的情况,所以在获取之前也需要检查指定名称的Cookie是否存在,如下:

stringuserName;if(Request.Cookies["UserName"] !=null)

{

userName= Request.Cookies["UserName"].Value;

}

6.【Application】

Application 和 Session 存储的数据类型和存储位置一样,都是存放 Object 类型的数据(也就是任意类型),并且存放在服务器上,不同的 Application 中的数据可以由网站中所有的用户来设置或者获取。并且 Application 中存放的数据没有时间限制,除非我们手动删除或者服务器重新启动,否则存放的数据都会丢失。

下面是 Session、Cookie 和 Application 的区别:

名称

使用范围

存储位置

存放数据类型

生命周期

Session

特定用户

服务器

Object,也就是任意类型

有,可以自行设置

Cookie

特定用户

客户端

String,也就值字符串

可以自行设置

Application

所有用户

服务器

Object,也就是任意类型

7.【<%%>表达式】

<%%>用来编写程序的代码部分。在其中可以声明变量和方法。如下:

<%stringname=Request.Form["userName"].Trim();stringuserName;if(Request.Cookies["UserName"] !=null)

{

userName=Request.Cookies["UserName"].Value;

}%>

在<%%>就是符合C#要求的代码。

8.【<%=%>表达式】

<%=%>是用来向输出流中变量的值。其用法如下:

<%inti=6;%><%=i%>

Response.Write()输出和<%=%>输出最后的效果是一样的。

来源:zhoufoxcn.blog.51cto.com/792419/166803

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有