ASP.NET中常见的系统对象:
对象名
| 说明
|
Page对象
| Page对象是指向页面自身的方式,在整个页面的执行期间内,都可以使用该对象 |
Request对象
| 此对象封装了由Web浏览器或其它客户端生成的HTTP请求的细节(参数、属性和数据),提供从浏览器读取信息或者读取客户端信息等功能,用于页面请求期 |
Response对象
| 此对象封装了返回到HTTP客户端的输出,提供向浏览器输出信息或者发送指令,用于页面的执行期 |
Server对象
| 该对象是JSP没有的,它提供了服务器端的一些属性和方法。比如,页面文件的绝对路径 |
Application对象
| 为所有用户提供共享信息,作用于整个应用程序运行期 |
Session对象
| 为某个用户提供共享信息,作用于用户会话期。常用于验证用户登录,购物车,保存私有信息 |
Cookie对象
| 保持于客户端的共享信息方式 |
Page对象
1.@Page指令 新建页面的 .aspx 文件有两种视图:设计视图和源视图。
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
@Page指令定义了ASP.NET页面用于编译和解析的属性,每个aspx页面只能有一个@Page指令。
Language:指定页面代码和后置代码使用的语言,需要注意的是,这里只支持微软 .NET 框架中的语言。
AutoEventWireup:设置页面是否自动调用网页事件,默认(不写时)为true。
CodeFile:指定代码后置文件名,后置代码,该后置代码与页面是局部关系。
Inherits:页面类
2.页面输入输出
Request对象的常用属性如下:
QueryString 集合主要用于收集HTTP协议中的GET 请求发送的数据,如果一个请求事件中被请求的程序URL中出现“?”号后的数据,则表示此次请求方式为GET。最常见的是超链接。
ServerVariable(环境变量)集合中包含了服务器和客户端的系统信息。
Response对象的常用方法如下:
A. Write( )方法可以输出指定的文本内容。
B. End()方法可以使Web 服务器停止当前的程序并返回结果。
C. Redirect()方法可以将页面重定向到另外一个页面。
D. Response.Buffer=false;设置或获取当前页是否缓冲输出,值为bool,默认为true.
E. Response.Flush();立即将缓冲输出去。
Request.ServerVariables[“HTTP_USER_AGENT”]可获取当前客户端浏览器的版本信息。
Request.ServerVariables[“HTTP_ACCEPT_LANGUAGE”]可获取当前客户端浏览器使用的语言。
由于HTTP协议是无状态的,所以用户登录就需要对用户信息进行保存,我们称之为状态保持。在ASP.NET中有 Cookie、session、Application三种状态保持的方式。
Cookie对象
Cookie是个存储在浏览器目录中的文本文件,当浏览该Cookie对应的站点时,Cookie作为HTTP头部文件的一部分在浏览器和服务器之间互相传递,这些数据和它们的传递过程对于用户来说不是直接可见的。
写入Cookie:
1. 临时cookie的写入
HttpCookie cookie=new HttpCookie( “Cookie的名称”,“值”);
Response.Cookies.Add( cookie );
2. 永久 Cookie 写入
//1 定义一个 HttpCookie
HttpCookie cookie = new HttpCookie("cookie2", this.TextBox2.Text);
//2. 指定Cookie的过期时间,就会变成永远Cookie
cookie.Expires = DateTime.Now.AddYears (30);
//3 保存
Response.Cookies.Add(cookie);
Cookie是存储在客户端的,所以它的使用就收到客户端浏览器的限制,大多数浏览器对Cookie的大小限制为4KB,就是说在Cookie中存储大量数据是不现实的。用户还可以通过修改浏览器设置将Cookie禁用,那么此时Cookie就无法使用。
Cookie一般用于完成以下工作:在用户未登录的情况下,记录用户的信息,比如:用户的浏览记录、用户上次登录时间等内容,进而可分析用户多久访问一次网站、用户的关注内容等,为网站商务宣传等提供必要信息。
Session对象
Session是存储在服务器端的数据,针对每一个连接,系统自动分配一个ID来标识每一个不同的用户,该ID在客户端和服务器间传递,达到唯一标识某一个用户的目的。
Session[“session名称”]=值;
变量=Session[“session名称”];
Session对象的特点如下:
1. session对象包含某一个用户状态信息,此信息仅面向该连接,不与其他用户共享。
2. 会话超时或者过期,服务器即刻清除Session 对象,释放所占资源。
3. 会话期通过SessionID 传递状态信息,不像 Cookie 那样将所有的内容传输,客户端仅对SessionID 可见,而对状态信息的内容不可见。
Session对象的常见属性和方法:
属性和方法 | 说明 |
SessionID属性 | 包含唯一的用户会话标识符,它可用于在整个会话过程中记录用户信息。 |
Timeout 属性 | 用户设置用户超时的时间,单位为分钟,在该段时间内,用户即使没有任何操作,用户状态也不会清除。注意,此处的设置是正对服务器清除Session的时间而已的,因为如果一段时间内没有操作,服务器是无法知道用户是否在线,所以以超时时间为限。而客户端有自己的处理机制,不同的浏览器也不尽相同,一般关闭窗口就会造成Session丢失。 |
IsNewSession | 如果已按当前请求创建会话,那么该属性将返回true |
Clear方法 | 从会话状态集合中移除所有的键和值 |
Abandon | 结束session ,取消当前会话 |
Application对象
Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。
Application [“Application名称”]=值;
变量=Application [“Application名称”];
Application对象的常用属性:
属性
| 说明
|
All | 返回全部的Application对象变量到一个对象数组 |
AllKeys | 返回全部的Application对象变量到一个字符串数组 |
Count | 取得Application 对象变量的数量 |
Item | 允许使用索引或Application 变量名称传回内容值 |
Application的常用方法:
方法
| 说明
|
Add | 新增一个 Application 对象变量 |
Clear | 清除全部的 Application 对象变量 |
Get | 使用索引值或变量名传回变量值 |
Set | 使用变量名称更新一个 Application 对象变量的内容 |
Lock | 锁定全部的 Application 变量 |
UnLock | 解除锁定 Application 变量 |
Session、Cookie 、Application的区别?
Session 能够保存相对少量的、简单的数据,这是面向单个用户、单个连接的信息,保存于服务器端(会占用服务器资源)。当Session超时或者被关闭时将情况保存数据。由于用户停止使用应用程序后它仍然会存在一段时间(一般是20分钟),因此Session对象保存数据的效率比较低,适应于保存少量数据。
Cookie保存少量的、简单的数据,一般不允许超过4KB(与浏览器有关),使用期限可以进行灵活设定,面向单个用户,保存于浏览器中(也就是客户端)。而由于信息存储在客户端,最好不要保存敏感的信息。
Application 能够保存任意大小的信息,在整个应用程序周期中有效,是面对所有应用程序用户的,保存于服务器端。当我们的网站访问量过大时,可能造成性能上的瓶颈。因此我们不推荐使用该对象来保存大的数据集合。
Server对象
Server对象的常用方法
方法
| 说明
|
HtmlEncode
| 此方法带有一个字符串参数,可将其编码,使其在浏览器中正确显示。比如希望在页面输出一个“<br>”,又不想在浏览器中显示成换行,则需要使用该方法。 |
HtmlDecode
| 此方法与HtmlEncode方法相反,对已编码内容解码 |
MapPath
| 此方法带有一个虚拟路径,可返回该路径在物理磁盘中的准确位置。此方法在Web开发中使用频率比较高,一般实现文件读写都需要该方法。Server.MapPath( string path );返回物理路径 |
UrlEncode
| 对Url地址进行编码,对于Url需要传输含有“#”、“&”等特殊字符的参数时,需要进行编码,否则后面的内容不会被识别 |
UrlDecode
| 此方法与UrlEncode方法相反,对URL地址进行解码 |
Execute
| 在当前页面执行参数指定的页面,执行完成后继续执行本页面 |
Transfer
| 参数指定的页面处理完成后,页面执行就结束,不像Execute那样还要返回控制权给先前的页面 |
浏览器版本:Request.ServerVariables[“HTTP_USER_AGENT”];
浏览器语言:Request.ServerVariables[“HTTP_ACCEPT_LANGUAGE”];
浏览器类型:Request.Browser.Browser;
浏览器版本:Request.Browser.Version ;
浏览器是否支持背景音乐:Request.Browser.BackgroundSounds;
浏览器是否支持框架:Request.Browser.Frames;
客户端IP地址: Request.UserHostAddress;
客户端主机名: Request.UserHostName;
客户端操作系统: Request.Browser.Platform;
服务器机器名称: Server.MachineName;
网站根路径: Server.MapPath("Default.aspx");