ASPNET页面内置对象总结

更新时间:2023-09-04 17:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

http://www.77cn.com.cn页面内置对象

http://www.77cn.com.cn中常用的内置对象及功能说明如下所示: 对 象 名 功 能 说 明 Page 用于操作整个页面 Response 用于向浏览器输出信息

Request 用于获取来自浏览器的信息 Server 提供服务器端的一些属性和方法

Application 用于共享多个会话和请求之间的全局信息 Session 用于存储特定用户的会话信息 Cookies 用于设置或获取Cookie信息

一..Page对象

Page对象是由System.Web.UI命名空间中的Page类来实现的。Page对象提供的常用属性、方法及事件如下所示:

名 称 功 能 说 明

IsPostBack属性 获取一个值,该值表示该页是否正为响应客户端回发而加载

IsValid属性 获取一个值,该值表示页面是否通过验证 Application属性 为当前 Web 请求获取 Application 对象。 Request属性 获取请求的页的 HttpRequest 对象

Response属性 获取与 Page 关联的 HttpResponse 对象。该对象使您得以将 HTTP 响应数据发送到客户端,并包含有关该响应的信息。 Session属性 获取 http://www.77cn.com.cn 提供的当前 Session 对象。

Server属性 获取 Server 对象,它是HttpServerUtility 类的实例。

DataBind方法 将数据源绑定到被调用的服务器控件及其所有子控件 RegisterClientScriptBlock方法 向页面发出客户端脚本块 Init事件 当服务器控件初始化时发生

Load事件 当服务器控件加载到Page对象中时发生 Unload事件 当服务器控件从内存中卸载时发生

二,Response对象 小实例:

View Code

///<summary>

/// 题目:Response方法演练

/// 时间:2012年11月20日9:49:15

/// 描述:对Response输出字符数组,知道遇到指定字符串停止程序,清除缓存区及跳转练习 ///</summary>

///<param name="sender"></param> ///<param name="e"></param>

protectedvoid Button1_Click(object sender, EventArgs e) {

string[] str = { "王", "口", "月", "北", "凡", "赢" };

Response.Write("字符串数组过滤后结果是:<br/>");

Response.Write("<b>注:由于使用了end终止程序,所以不会实现页面跳转.</b><br/>");

for (int i = 0; i < str.Length; i++) {

if (str[i] == "凡") {

Response.End();//终止程序输出 } else

{

Response.Write(str[i]); } }

Response.Clear();//清除缓存区

Response.Redirect("WebForm3.aspx");

} 运行:

扩展知识:

Response对象用语输出数据到客户端,包括向浏览器输出数据、重定向浏览器到另一个URL或向浏览器输出Cookie文件。 其类名为

httpResponse

属性和方法

Write() 向客户端发送字符串信息 BufferOutPut属性 是否使用缓存 Clear() 清除缓存

Flush() 强制输出缓存的所有数据 Redirect() 网页转向地址 End() 终止当前页的运行

WriteFile() 读取一个文件,并且写入客户端输出流 (实质:打开文件,并且输出到客户端。) 1.Response.Write 变量数据或字符串 Response.Write (变量数据或字符串) <%= %>

Response.Write("<script language=javascript>alert('欢迎学习http://www.77cn.com.cn')</script>")

Response.Write("<script>window.open('WebForm2.aspx')</script>")

2.Response对象的Redirect方法将客户端浏览器重定向到另外的URL上,即跳转到另一个网页。 例如:

Response.Redirect("http://www.77cn.com.cn/") 3. Response.End() 终止当前页的运行 4.Response.WriteFile(FileName) 其中:

FileName 指代需向浏览器输出的文件的文件名

三.Request对象 小实例: View Code

///<summary>

/// 题目:Request方法演练

/// 时间:2012年11月20日9:53:52

/// 描述:对Request接受字符串及输出等相关操作 ///</summary>

///<param name="sender"></param> ///<param name="e"></param> ///WebForm3.aspx跳转

protectedvoid Button1_Click(object sender, EventArgs e) {

string str="hello"

;

string name = "jon";

Response.Redirect("WebForm2.aspx?id=" + str+"&name="+name); }

//接收页面:WebForm2.aspx

protectedvoid Button2_Click(object sender, EventArgs e) {

Response.Write("获取页面请求字符串:" + Request.QueryString.ToString() + "<br/>");

Response.Write("获取页面参数值:" + Request.QueryString["id"].ToString() + "<br/>"); Response.Write("获取页面传递参数值:" + Request.Params["name"] + "<br/>");

Response.Write("获取页面请求地址" + Request.Path.ToString() + "<br/>");

Response.Write("获取页面客户端IP地址" + http://www.77cn.com.cnerHostAddress + "<br/>");

Response.Write("获取页面客户端主机名" + http://www.77cn.com.cnerHostName + "<br/>");

Response.Write("获取页面客户端浏览器信息" + Request.Browser.Type.ToString() + "<br/>"); }

扩展知识:

Request对象是由类System.Web.HttpRequest来实现。Request对象常用的属性和方法如下所示。

名 称 功 能 说 明

Cookies属性 获取客户端发送的Cookie的集合 Form属性 获取表单变量的集合

QueryString属性 获取HTTP查询字符串变量集合 四。 Server对象

小实例: View Code

///<summary>

/// 题目:Server方法演练

/// 时间:2012年11月20日13:08:20

/// 描述:通过调用本页面,实现对Server传值的演练 ///</summary>

/// 发送登陆页面:WebForm2.aspx ///<param name="sender"></param> ///<param name="e"></param>

protectedvoid Button7_Click(object sender, EventArgs e) {

Response.Write("远程服务器名:" + Server.MachineName + "<br/>");

Response.Write(Server.MapPath("~/WebForm2.aspx") + "<br/>"); string str;

str = Server.HtmlEncode("<b>HTML 内容</b></br>"); Response.Write(str + "<br/>"); str = Server.HtmlDecode(str); Response.Write(str + "<br/>"); }

扩展知识:

Server对象提供对服务器上的方法和属性进行的访问 .其类名称是HttpServerUtility.

Server对象的主要属性有:

MachineName:获取服务器的计算机名称。

ScriptTimeout:获取和设置请求超时(以秒计)。 方法名称 说明

CreateObject 创建 COM 对象的一个服务器实例。

Execute 执行当前服务器上的另一个aspx页,执行完该页后再返回本页继续执行

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

HtmlDecode 对HTML编码的字符串进行解码,并返回已解码的字符串。 MapPath 返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。 Transfer 终止当前页的执行,并为当前请求开始执行新页。 UrlEncode 将代表URL的字符串进行编码,以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输。

UrlDecode 对已被编码的URL字符串进行解码,并返回已解码的字符串。 UrlPathEncode 对 URL 字符串的路径部分进行 URL 编码,并返回已编码的字符串。 编码:

Server.HtmlEncode(“HTML代码”) 解码:

Server.HtmlDecode(“已编码的HTML”)

1.Server对象的MapPath方法将虚拟路径或相对于当前页的相对路径转化为Web 服务器上的物理文件路径。

语法:Server.MapPath(“虚拟路径”) String FilePath

FilePath = Server.MapPath(“/”) Response.Write(FilePath)

五。Application对象 小实例: View Code

///<summary>

/// 题目:Application方法演练

/// 时间:2012年11月20日12:59:11

/// 描述:通过记录网站在线人数的小实例,对Application进行演练 ///</summary>

/// WebForm2页面,统计记录

///<param name="sender"></param> ///<param name="e"></param>

protectedvoid Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

lblApplication.Text = "网站在线人数" + Application["userCount"]; } }

// WebForm2页面,注销Application事件

protectedvoid btnApplication_Click(object sender, EventArgs e) {

Session.Abandon(); }

///<summary> /// 题目:

/// 时间:2012年11月20日13:02:13

/// 描述:在Global.asac中对Application相应事件设置 ///</summary>

///<param name="sender"></param> ///<param name="e"></param> //初始化用户登陆人数为0

void Application_Start(object sender, EventArgs e) {

// 在应用程序启动时运行的代码 Application.Lock();

Application["userCount"] = 0; Application.UnLock(); }

//用户数量加1

void Session_Start(object sender, EventArgs e) {

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

Application.Lock();

Application["userCount"] =

int.Parse(Application["userCount"].ToString()) + 1; Application.UnLock();

}

//用户数量减1

void Session_End(object sender, EventArgs e) {

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

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

Application.Lock();

Application["userCount"] =

int.Parse(Application["userCount"].ToString()) -1;

Application.UnLock();

}

<!--在system.web中配置,不可少,否则不执行--> <system.web>

<sessionState mode="InProc"/> <system.web/> 运行结果:

扩展知识:

Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数、在线名单、意见调查和网上选举等。在给定的应用程 序的多有用户之间共享信息,并在服务器运行期间持久的保存数据。而且Application对象还有控制访问应用层数据的方法和可用于在应用程序启动和停 止时触发过程的事件。 1.使用Application对象保存信息 使用Application对象保存信息 Application(“键名”) = 值 或

Application(“键名”,值) 获取Application对象信息

变量名 = Application(“键名”)

或:变量名 = Application.Item(“键名”) 或:变量名 = Application.Get(“键名”) 更新Application对象的值

Application.Set(“键名”, 值) 删除一个键

Application.Remove(“键名”, 值) 删除所有键

Application.RemoveAll() 或Application.Clear()

2.有可能存在多个用户同时存取同一个Application对象的情况。这样就有可能出现多个用户修改同一个Application命名对象,造成数据不一致的问题。

HttpApplicationState 类提供两种方法 Lock 和 Unlock,以解决对

Application对象的访问同步问题,一次只允许一个线程访问应用程序状态变量。 关于锁定与解锁

锁定:Application.Lock()

访问:Application(“键名”) = 值 解锁:Application.Unlock()

注意:Lock方法和UnLock方法应该成对使用。 可用于网站访问人数,聊天室等设备 3. 使用Application事件

在http://www.77cn.com.cn 应用程序中可以包含一个特殊的可选文件——Global.asax 文件,也称作 http://www.77cn.com.cn 应用程序文件,它包含用于响应 http://www.77cn.com.cn或HTTP模块引发的应用程序级别事件的代码。

Global.asax 文件提供了7个事件,其中5个应用于Application对象 事件名称 说明

Application_Start 在应用程序启动时激发

Application_BeginRequest 在每个请求开始时激发

Application_AuthenticateRequest 尝试对使用者进行身份验证时激发 Application_Error 在发生错误时激发 Application_End 在应用程序结束时激发

六。Session 小实例: View Code

///<summary>

/// 题目:Session方法演练

/// 时间:2012年11月20日12:52:53

/// 描述:通过一个简单登陆,实现对Session传值的演练 ///</summary>

/// 发送登陆页面:WebForm2.aspx ///<param name="sender"></param> ///<param name="e"></param>

protectedvoid Button3_Click(object sender, EventArgs e) {

string user = usertxt.Text; string pwd = pwdtxt.Text; if (user == "" || pwd == "") {

this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('用户名或密码为空!')<script>"

);

//Response.Write("<script>alert('用户名或密码为空!')<script>"); } else

{

Session["name"] = user;

Response.Redirect("WebForm3.aspx"); } }

//接收页面WebForm3.aspx

protectedvoid Button2_Click(object sender, EventArgs e) {

if (Session["name"] != null) {

lblname.Text = "用户名:" + Session["name"]; } else

{

lblname.Text = "用户名错误"; } }

运行结果: 发送页面:

接收页面:

扩展知识:

Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。 Session对象在.NET中对应HttpSessionState类,表示“会话状态”,可以保存与当前用户会话相关的信息。

Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息。用户在应用程序的页面切换时,Session对象的变量不会被清除。

对 于一个Web应用程序而言,所有用户访问到的Application对象的内容是完全一样的;而不同用户会话访问到的Session对象的内容则各不相 同。 Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一 性。 (1)将新的项添加到会话状态中 语法格式为:

Session ("键名") = 值 或者

Session.Add( "键名" , 值)

(2)按名称获取会话状态中的值 语法格式为:

变量 = Session ("键名") 或者

变量 = Session.Item("键名") (3)删除会话状态集合中的项 语法格式为:

Session.Remove("键名")

(4)清除会话状态中的所有值 语法格式为:

Session.RemoveAll() 或者

Session.Clear() (5)取消当前会话 语法格式为:

Session.Abandon()

(6)设置会话状态的超时期限,以分钟为单位。 语法格式为:

Session.TimeOut = 数值

Global.asax 文件中有2个事件应用于Session对象 事件名称 说明

Session_Start 在会话启动时激发 Session_End 在会话结束时激发

七 Cookie对象

小实例: View Code

///<summary>

/// 题目:Cookies方法演练

/// 时间:2012年11月20日13:11:51

/// 描述:通过写入ip地址和读取,以及加密解密操作实现对Cookies传值的演练

///</summary>

/// 发送登陆页面:WebForm2.aspx ///<param name="sender"></param> ///<param name="e"></param> //写入ip地址

protectedvoid Button5_Click(object sender, EventArgs e) {

string UserIP = http://www.77cn.com.cnerHostAddress.ToString(); Response.Cookies["IP"].Value = UserIP;

Response.Cookies["IP"].Expires = DateTime.Now.AddDays(1); }

//读取ip地址

protectedvoid Button6_Click(object sender, EventArgs e) {

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

lblcookie.Text = Request.Cookies["IP"].Value; } } 运行结果:

扩展知识:

Cookie就是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘键/值’对的形式存储。

Cookie是保存在客户机硬盘上的一个文本文件,可以存储有关特定客户端、会话或应用程序的信息,在.NET中对应HttpCookie类。

有两种类型的Cookie:会话Cookie(Session Cookie)和持久性Cookie。前者是临时性的,一旦会话状态结束它将不复存在;后者则具有确定的过期日期,在过期之前Cookie在用户的计算机上以文本文件的形式存储。

在服务器上创建并向客户端输出Cookie可以利用Response对象实现。

Response对象支持一个名为Cookies的集合,可以将Cookie对象添加到该集合中,从而向客户端输出Cookie。

通过Request对象的Cookies集合来访问Cookie

七 补充:Form表单数据提交到服务器的方式有两种:Get和Post方式。 <html> <head>

<title>使用POST传送数据</title> </head> <body>

<form method="post" action="do.aspx">

请输入您的名字:<input type="text" name="mingzi"><br> <input type="submit" value="提交"> </form> </body> </html>

在do.aspx中将使用Request.Form["mingzi"]来获取用户输入的名字,do.aspx的代码如下:

private void Page_Load(Object o,EventArgs e) //页面加载后即显示表单数据 {

string strmessage="您的名字为:"; //定义字符串变量并赋初值 strmessage+= Request.Form["mingzi"]; //把表单数据串接到变量 Response.Write(strmessage);//输出变量 }

QueryString数据集合

可以利用QueryString集合来获取客户端通过GET方法传送的表单数据,如果把 form.htm中表单的method属性值由POST改为GET,则在do.aspx中就需要通过Request.QueryString ["mingzi"]来获取输入的名字。因为GET方法传送数据有一定的限制并且不安全,所以表单一般不使用GET方法。

private void Page_Load(object sender, System.EventArgs e) {

if(Request.QueryString["mingzi"].ToString()!="") Response.Write("您的名字

是:"+Request.QueryString["mingzi"].ToString()); }

本文来源:https://www.bwwdw.com/article/5t7i.html

Top