011. asp.net内置对象

Response对象:

Response代表了服务器响应对象, 主要用于将数据从服务器发送回浏览器; 每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求. Response对象允许将数据作为请求的结果发送到浏览器中, 并提供有关相应的信息. 它可以用来在页面中输入数据, 在页面中跳转以及传递各个页面的参数. 与HTTP协议的响应消息相对应.

Response常用属性如下:

属性名

 值类型

 说明

Buffer

bool

获取或设置一个值,该值指示是否缓冲输出并在处理完整个响应之后发送它

Cache

HttpCachePolicy

获取网页的缓存策略(例如:过期时间、保密性设置和变化条款), 包含与当前响应的缓存策略有关的信息的 System.Web.HttpCachePolicy 对象

Charset

 string

 设定或获取HTTP的输出字符集编码, 告诉客户端如何显示. 也就是说在浏览器中如何显示

Expires

Int(web页过期之前的分钟数)

  获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页面过期之前返回到该页,则显示缓存的版本。提供 System.Web.HttpResponse.Expires是为了与 ASP 的早期版本兼容。

BufferOutput

Bool

返回结果:如果缓冲发送给客户端的输出,则为 true;否则为 false。默认值为 true。

 

获取或设置一个值,该值指示是否缓冲输出, 并在处理完整个web页面后将其发送;

Cookies

 HttpCookieCollection

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

IsClientConnected

Bool如果客户端当前仍在连接,则为 true;否则为 false

获取一个值,通过该值指示客户端是否仍连接在服务器上。

SuppressContent

Bool

获取或设置一个值,该值指示是否将 HTTP 内容发送到客户端

ContentEncoding

 Encoding

 获取或设置输出流的 HTTP 字符集编码, 标识输出的内容是如何编码的.

ContentType

 string 

 输出流的 HTTP MIME 类型。默认值为“text/html”

Output

 TextWriter

 服务器响应对象的字符输出流,支持到客户端的自定义输出的 System.IO.TextWriter 对象

RedirectLocation

 string

获取或设置 Http Location 标头的值.

 

Response常用方法如下

Redirect(string url, bool endResponse)

 

Void

页面跳转, 将客户端重定向到新的 URL。指定新的 URL 并指定当前页的执行是否应终止。

AppendHeader(string name, string value);

 

Void

将 HTTP 头添加到输出流。

name: 要添加到输出流的 HTTP 头的名称。

value:要追加到头中的字符串。

提供 System.Web.HttpResponse.AddHeader(System.String,System.String) 是为了与 ASP 的早期版本兼容

AppendToLog(string param)

void

将自定义日志信息添加到 Internet 信息服务 (IIS) 日志文件。

param:要添加到日志文件的文本。

Clear()

void

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

End();

void

停止该页的执行,并将当前所有缓冲的输出发送到客户端,并引发 System.Web.HttpApplication.EndRequest 事件

Flush();

 

void

向客户端发送当前所有缓冲区中的内容

Write(char ch)

void

将一个字符写入 HTTP 输出到客户端浏览器中

ch:要写入 HTTP 输出流的字符。 三种重载 (object string char)

WriteFile(string filename);

 

void

将指定文件的内容直接写入 HTTP 响应输出流

filename:要写入 HTTP 输出的文件名(四个重载)

Response.WriteFile(Server.MapPath(filePath))

Server.MapPath()//获取filePath在磁盘上的物理路径

SetCookie(HttpCookie cookie);

 

void

更新 Cookie 集合中的一个现有 Cookie。

cookie:集合中要更新的 Cookie.

Close();

void

关闭服务器到客户端的(套接字)连接

Request对象:

Request是一个请求对象, 封装了客户端请求信息; 该对象是HttpRequest类的一个实例, 用于提供对当前页请求的访问, 其中包括标题, Cookie, 查询字符串等, 用户可以使用此类来读取浏览器已经发送的内容, 当用户打开web浏览器, 并从网站请求Web页面时, Web服务器就会收到一个请求(Request), 其中包含用户, 用户的计算机, 页面以及浏览器的相关信息, 这些信息被完整地封装, 并在Request对象中可以使用. 这些信息都是通过Request对象一次性提供的.

Request对象的常用属性:

 属性名

 值类型

 说明

 ApplicationPath

 String

 获取请求的资源在网站上的根路径(返回当前应用程序的虚拟路径)

AcceptTypes

string[]

 获取客户端支持的 MIME 接受类型的字符串数组。

返回结果:客户端支持的 MIME 接受类型的字符串数组。

Browser

HttpBrowserCapabilities

获取或设置正在请求的客户端的浏览器功能的有关信息。

返回结果:列出客户端浏览器功能的 System.Web.HttpBrowserCapabilities 对象

//Request.Browser.Platform; //浏览器使用的系统平台

//Request.Browser.Type; //浏览器名称和主版本号    (整数)

//Request.Browser.Version; //浏览器的完整版本号(整数/小数)

 ContentEncoding

 Encoding

获取或设置请求时提交内容的编码

ContentLength

 int

指定客户端发送的内容长度(以字节计)  

返回结果: 客户端发送的内容的长度(以字节为单位)。

 Cookies

 HttpCookieCollection

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

FilePath

string

获取当前请求的虚拟路径

Files

HttpFileCollection

获取采用多部分 MIME 格式的由客户端上载的文件的集合.对象的项属于 System.Web.HttpPostedFile 类型,返回System.Web.HttpFileCollection 对象,表示客户端上载的文件集合

Form

NameValueCollection

获取窗体变量集合, 返回

表示窗体变量集合的 System.Collections.Specialized.NameValueCollection

IsLocal

bool

获取一个值,该值指示该请求是否来自本地计算机。如果该请求来自本地计算机,则为 true;否则,为 false。

Params

NameValueCollection

 

获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.ServerVariables和 System.Web.HttpRequest.Cookies 项的组合集合。

Path

string

获取当前请求的虚拟路径

PhysicalPath

string

获取与请求的 URL 相对应的物理文件系统路径。返回当前请求的文件系统路径。

 QueryString

 NameValueCollection

 当前请求的查询字符串变量集合, 返回

System.Collections.Specialized.NameValueCollection,包含由客户端发送的查询字符串变量的集合。 例如请求URL 为 http://www.contoso.com/default.aspx?id=44,则 System.Web.HttpRequest.QueryString的值为“id=44”。

UserHostAddress

string

获取远程客户端的 IP 主机地址。

UserHostName

string

获取远程客户端的 DNS 名称。

RequestType

 

string

获取或设置客户端使用的 HTTP 数据传输方法(GET 或 POST)

 UrlReferrer

 Uri

获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL, 也就是说获取用户由哪个url跳转到当前页面

 Request对象常用方法

MapPath(string virtualPath)

string

将当前请求的URL中的虚拟路径映射到服务器上的物理路径。

参数: virtualPath:

返回结果:由 virtualPath 指定的服务器物理路径。

Request.MapPath("Default.aspx"); //获取Default.aspx页面的物理路径

SaveAs(string filename, bool includeHeaders)

void

将 HTTP 请求保存到磁盘。

参数: filename:物理驱动器路径。

      includeHeaders:一个布尔值,该值指定是否应将 HTTP 头保存到磁盘。

 Application对象:

Application 对象, 是用来记录应用程序参数的对象, 主要用于共享应用程序级的信息.即多个用户共享一个Application对象, 在第一个用户请求Asp.net文件时, 将启用应用程序并创建Application对象. 一旦Application对象被创建, 它就可以共享和管理整个应用程序的信息. 在应用程序关闭之前, Application对象将一直存在. 所以Application对象是用于启动和管理ASP.net应用程序的主要对象;

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

Application对象在服务器内存中存储数量较少又独立于用户请求的数据。由于它的访问速度非常快而且只要应用程序不停止,数据一直存在,我们通常在Application_Start的时候去初始化一些数据,在以后的访问中可以迅速访问和检索。
Application对象常用属性

AllKeys

string[]

获取 System.Web.HttpApplicationState 集合中的访问键.返回System.Web.HttpApplicationState 对象名的字符串数组。

Count

int

获取 System.Web.HttpApplicationState 集合中的对象数,返回集合中的 Item 对象数。默认值为 0。

Application对象常用方法:

Add(string name, object value)

void

将新的对象添加到 System.Web.HttpApplicationState 集合中。

参数:

name: 要添加到集合中的对象名。

value:对象的值。

Clear();

Void

从 System.Web.HttpApplicationState 集合中移除所有对象.

Get(int index);

重载 Get(string name)

object

通过数字索引获取 System.Web.HttpApplicationState 对象

参数:

index:

应用程序状态对象的索引。

返回index 所引用的对象。

GetKey(int index);

String

通过索引获取 System.Web.HttpApplicationState 对象名。

参数:

index:应用程序状态对象的索引。

返回:保存应用程序状态对象所使用的名称。

Lock()

void

锁定对 System.Web.HttpApplicationState 变量的访问以促进访问同步. 例如在统计在线人数时就需要对Application对象加锁, 以防止因为多个用户同时访问页面造成并行.

Application.Lock();

Application["number"] = 2;

Application.UnLock();

Lock方法可以阻止其他用户修改存储在Application对象中的变量, 以确保在同一时刻仅有一个用户可以修改和存取Application变量. 如果用户没有明确使用Unlock方法. 则服务器将在页面文件结束或超出时即解除对Application对象的锁定. Unlock方法可以使其他客户端在使用Lock方法锁住Application对象后, 修改存储在该对象中的变量. 如果未显式的调用该方法, Web服务器将在页面结束或超出后解锁Application对象.

Remove(string name);

重载 RemoveAt(int index)

void

从 System.Web.HttpApplicationState 集合中移除命名对象。name:要从集合中移除的对象名。

RemoveAll()

Void

从 System.Web.HttpApplicationState 集合中移除所有对象。

RemoveAt(int index)

void

按索引从集合中移除一个 System.Web.HttpApplicationState 对象

Set(string name, object value);

Void

更新 System.Web.HttpApplicationState 集合中的对象值。

name:要更新的对象名。

value:对象更新之后的值。

UnLock();

void

取消锁定对 System.Web.HttpApplicationState 变量的访问以促进访问同步。

Application对象常用事件:

//Global.asax 是一个用来处理应用程序全局的文件。打开文件,系统已经为定义了一些事件的处理方法。

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

Application["name"] = "欢迎来到***";

} 

 

void Application_End(object sender, EventArgs e)

{

    //  在应用程序关闭时运行的代码

}     

 

void Application_Error(object sender, EventArgs e)

{

    // 在出现未处理的错误时运行的代码

}

 

void Session_Start(object sender, EventArgs e)

{

    // 在新会话启动时运行的代码

}

 

void Session_End(object sender, EventArgs e)

{

    // 在会话结束时运行的代码

 

    // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为InProc 时,才会引发 Session_End 事件

 

    // 如果会话模式设置为 StateServer 或 SQLServer,则不会引发该事件

}

//通过这些注释可以看到,这些事件是整个应用程序的事件,和某一个页面没有关系。

Session对象常用事件:

Seesion对象用来存储跨网页程序的变量或者对象,该对象用于共享应用程序级信息,该对象只针对单一网页使用者, 也就是说服务器会为连接的客户端分配各自的Session对象, 不同的客户端无法互相存取, 当超过设置的有效事件时, Session对象就会消失.属于Page对象的成员, 可以在网页中直接使用,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[“变量名”] = “内容”;

Name=Session[“变量名”];

Session对象的常用属性:

Contents

HttpSessionState

获取对当前会话状态对象的引用, 返回当前的 System.Web.SessionState.HttpSessionState

TimeOut

int

获取并设置在会话状态提供程序终止会话之前各请求之间所允许的时间(以分钟为单位), 默认值20分钟, 最大值525600分钟(一年)

返回 超时期限(以分钟为单位)。

    <!--在web.config文件中设置Session对象的有效时间为30分钟-->

    <sessionState mode="InProc" timeout="30" />

SessionID

String

获取会话的唯一标识符

Session对象常用的方法:

Abandon();

void

结束当前会话, 并清除会话中的所有信息

Add(string name, object value)

Void

向会话状态集合添加一个新项,name: 要添加到会话状态集合的项的名称,value: 要添加到会话状态集合的项的值

Clear()

void

从会话状态集合中移除所有的键和值

CopyTo(Array array, int index)

Void

将会话状态值的集合复制到一维数组中(从数组的指定索引处开始), array: System.Array,接收会话值; index:array 中从零开始的索引,在此处开始复制

Remove(string name)

void

删除会话状态集合中的项, name: 要从会话状态集合中删除的项的名称。

RemoveAll()

void

从会话状态集合中移除所有的键和值

RemoveAt(int index)

void

删除会话状态集合中指定索引处的项,index:要从会话状态集合中移除的项的索引。

     

Cookie对象:

Cookie 对象和 Session 对象一样也是用来保存特定的用户相关的数据,不过 Session保存在服务器史昂, 而Cookie 保存在客户端中,每次客户端发出请求的时候都会把 Cookie 一起发送到服务器,服务器每次响应客户端请求的时候会重新把 Cookie 发送到客户端保存, 所以Cookie对象用于保存客户端浏览器请求的服务页面, 也可用它存放非敏感的用户信息, 信息保存的时间可以根据用户的需要进行设置. 注意: 并非所有的浏览器都支持Cookie(这其中包含人为的禁用/清除), 并且所有的数据信息是以文本的形式保存在客户端计算机里面的;

 

Cookie 保存数据有以下特点:

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

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

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

 

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

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

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

Response.Cookies.Add(cookie);

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

 string userName;

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

 {

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

 }

Cookie对象的常用属性和方法:

属性名

值类型

说明

Expires

DateTime

获取或设置Cookie变量的有效时间, 默认为1000分钟; 如果设置为0, 则可实时删除Cookie变量; Expires属性必须被设置, 若没有指定, 则Cookie变量将不会被存储

System.Web.HttpCookie cookie = new System.Web.HttpCookie();

cookie.Value = "hello World";

DateTime dt = DateTime.Now;

TimeSpan ts = new TimeSpan(0, 0, 0, 20);

cookie.Expires = dt.Add(ts); //dt.Add 返回一个新的时间,它将指定 System.TimeSpan 的值加到此实例的值上

Name

string

获取或设置 Cookie 的名称

Value

string

获取或设置单个 Cookie变量的内容值。

Path

string

获取或设置要与当前 Cookie 一起传输的虚拟路径

System.Web.HttpCookie cookie = new System.Web.HttpCookie("test");//声明一个Cookie变量

cookie.Value = "hello World"; //赋值给这个Cookie变量

Response.Cookies.Add(cookie); //将指定的Cookie添加到此Cookie集合中

Response.Write(Request.Cookies["test"].Path);//页面输出

构造函数

HttpCookie(string name)

 

创建并命名新的 Cookie, name表示新 Cookie 的名称

HttpCookie(string name, string value)

 

 

创建和命名新的 Cookie,并为其赋值

 Server对象

Server对象是用于获取服务器的相关信息的对象, 定义了一个与Web服务器相关的类, 来用于访问服务器上的资源.

Server对象的属性:

MachineName

string

获取服务器的计算机名称。返回,本地计算机的名称。

ScriptTimeout

int

获取和设置请求超时时间(以秒计),返回请求的超时 时间。

Server对象的常用方法:

Execute(string path)

Void

在当前请求的上下文中执行指定虚拟路径的处理程序, path:要执行的 URL 路径; 执行指定的资源, 并且在执行完成之后再执行本页的代码;

HtmlDecode(string s)

String

对 HTML 编码的字符串进行解码,并返回已解码的字符串。

参数: s:要解码的 HTML 字符串。消除对特殊字符串编码的影响

HtmlEncode(string s)

String

对要在浏览器中显示的字符串进行编码;对字符串进行 HTML 编码并返回已编码的字符串

MapPath(string path)

String

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

path: Web 服务器的虚拟路径。返回,与 path 相对应的物理文件路径。

Transfer(string path)

Void

对于当前请求,终止当前页的执行,并使用指定的页 URL 路径来开始执行一个新页。

path:服务器上要执行的新页的 URL 路径。

UrlDecode(string s)

String

对(路径)字符串进行 URL 解码并返回已解码的字符串。

UrlEncode(string s)

String

对(路径)字符串进行 URL 编码,并返回已编码的字符串。

原文地址:https://www.cnblogs.com/wxylog/p/6109498.html