ASP.NET中常用的内置对象

版权所有,禁止匿名转载;禁止商业使用。

ASP.NET中常用的内置对象及功能说明如下所示:
对 象 名         功  能  说  明
Page           用于操作整个页面
Response         用于向浏览器输出信息
Request          用于获取来自浏览器的信息
Server                    提供服务器端的一些属性和方法
Application                用于共享多个会话和请求之间的全局信息
Session                   用于存储特定用户的会话信息
Cookies                   用于设置或获取Cookie信息
一..Page对象
Page对象是由System.Web.UI命名空间中的Page类来实现的,Page 类与扩展名为.aspx 的文件相关联,这些文件在运行时被编译为Page对象,并缓存在服务器内存中。Page对象提供的常用属性、方法及事件如下所示:
名  称                功  能  说  明
IsPostBack属性    获取一个值,该值表示该页是否正为响应客户端回发而加载
IsValid属性      获取一个值,该值表示页面是否通过验证
Application属性    为当前 Web 请求获取 Application 对象。
Request属性      获取请求的页的 HttpRequest 对象
Response属性     获取与 Page 关联的 HttpResponse 对象。该对象使您得以将 HTTP 响应数据发送到客户端,并包含有关该响应的信息。
Session属性      获取 ASP.NET 提供的当前 Session 对象。
Server属性      获取 Server 对象,它是HttpServerUtility 类的实例。
DataBind方法     将数据源绑定到被调用的服务器控件及其所有子控件
RegisterClientScriptBlock方法  向页面发出客户端脚本块
Init事件        当服务器控件初始化时发生
Load事件       当服务器控件加载到Page对象中时发生
Unload事件      当服务器控件从内存中卸载时发生

1.IsPostBack属性
IsPostBack属性用来获取一个布尔值,如果该值为true,则表示当前页是为响应客户端回发(例如单击按钮)而加载,否则表示当前页是首次加载和访问。

private void Page_Load(object sender, System.EventArgs e)
{
 if( !Page.IsPostBack )
 {
 Label1.Text = "页面第一次加载!";
 }
 else
 {
 Label1.Text = "页面第二次或第二次以上加载!";
   }
}

IsValid属性
IsValid属性用来获取一个布尔值,该值指示页验证是否成功,如果页验证成功,则为 true;否则为 false。一般在包含有验证服务器控件的页面中使用,只有在所有验证服务器控件都验证成功时,IsValid属性的值才为true。

private void Button_Click(Object Sender, EventArgs e)
    {
        if (Page.IsValid == true)  //也可写成if (Page.IsValid)
        {
            mylabel.Text="您输入的信息通过验证!";
        }
        else
        {
            mylabel.Text="您的输入有误,请检查后重新输入!";
        }
    }

二.Request对象
Request对象是由类System.Web.HttpRequest来实现的。当客户请求ASP.NET页面时,所有的请求信息,包括请求报头、请求方法、客户端基本信息等都被封装在Request对象中,利用Request对象就可以读取这些请求信息。Request对象常用的属性和方法如下所示。
名  称            功  能  说  明
Cookies属性          获取客户端发送的Cookie的集合
Form属性           获取表单变量的集合
QueryString属性        获取HTTP查询字符串变量集合
Form表单数据提交到服务器的方式有两种:Get和Post方式。
i. . get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
ii. . 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
iii.  get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
iv.  get安全性非常低,post安全性较高。
Form数据集合
使用Request的Form集合来获取客户端通过POST方法传送的表单数据,例如,服务器上有两个网页form.htm和do.aspx,form.htm中包含一个表单,表单传送数据的方法为POST,并且表单提交到同一目录下的do.aspx。form.htm的代码如下:

<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());
  }

在Web应用程序开发中,QueryString常用来获取URL查询字符串中变量的值,这与使用GET方法传送表单数据的情况一样。例如,客户端使用如下地址请求:http://localhost/doit.aspx?name=zhangsan&sex=nan   
或打开如下的超级链接:
<a href="http://localhost/doit.aspx?name=zhangsan&sex=nan">doit.aspx</a>
在doit.aspx中就可以使用Request.QueryString["name"]和Request.QueryString["sex"]来获取相应的值zhangsan和nan。

******************************

本想写一篇总结ASP.NET内置对象的文章,结果发现网上有篇不错的,就转了过来

ASP.NET的内置对象介绍
1.Response
2.Request
3.Server
4.Application
5.Session
6.Cooki

Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数、Cookie和用户认证。因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用;
其类名为 HttpRequest
属性很多,但方法很少,只有一个BinaryRead()
1.使用Request.Form属性获取数据
通过该属性,读取<Form></Form>之间的表单数据.注意:提交方式要设置为“Post”。
与Get方法相比较,使用Post方法可以将大量数据发送到服务器端
2.利用Request.QueryString属性获取数据
Request对象的QuerySting属性可以获取 HTTP 查询字符串变量集合 。 通过该属性,我们可以读取地址信息 http://localhost/aaa.aspx?uid=tom&pwd=abc 其中标识为红色部分的数据.
注意:提交方式要设置为“Get”
3.问题:Request.Form用于表单提交方式为Post的情况,而Request.QueryString用于表单提交方式为Get的情况,如果用错,则获取不到数据。
解决方法:利用Request(“元素名”)来简化操作。
4.Request.ServerVariables("环境变量名称")
类似的还有:UserHostAddress,Browser,Cookies,ContentType,IsAuthenticated
Item,Params

Response对象用语输出数据到客户端,包括向浏览器输出数据、重定向浏览器到另一个URL或向浏览器输出Cookie文件。
其类名为httpResponse
属性和方法
Write() 向客户端发送字符串信息
BufferOutPut属性 是否使用缓存
Clear() 清除缓存
Flush() 强制输出缓存的所有数据
Redirect() 网页转向地址
End() 终止当前页的运行
WriteFile() 读取一个文件,并且写入客户端输出流
(实质:打开文件,并且输出到客户端。)
1.Response.Write 变量数据或字符串
Response.Write (变量数据或字符串)
<%=…%>
Response.Write("<script language=javascript>alert('欢迎学习ASP.NET')</script>")
Response.Write("<script>window.open('WebForm2.aspx')</script>")
2.Response对象的Redirect方法将客户端浏览器重定向到另外的URL上,即跳转到另一个网页。
例如:
Response.Redirect("http://www.163.net/")
3. Response.End() 终止当前页的运行
4.Response.WriteFile(FileName)
其中:
FileName 指代需向浏览器输出的文件的文件名

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对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数、在线名单、意见调查和网上选举等。在给定的应用程序的多有用户之间共享信息,并在服务器运行期间持久的保存数据。而且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事件
在ASP.NET 应用程序中可以包含一个特殊的可选文件——Global.asax 文件,也称作 ASP.NET 应用程序文件,它包含用于响应 ASP.NET或HTTP模块引发的应用程序级别事件的代码。
Global.asax 文件提供了7个事件,其中5个应用于Application对象

 

事件名称 说明
Application_Start 在应用程序启动时激发
Application_BeginRequest 在每个请求开始时激发
Application_AuthenticateRequest 尝试对使用者进行身份验证时激发
Application_Error 在发生错误时激发
Application_End 在应用程序结束时激发

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就是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘键/值’对的形式存储。
Cookie是保存在客户机硬盘上的一个文本文件,可以存储有关特定客户端、会话或应用程序的信息,在.NET中对应HttpCookie类。
有两种类型的Cookie:会话Cookie(Session Cookie)和持久性Cookie。前者是临时性的,一旦会话状态结束它将不复存在;后者则具有确定的过期日期,在过期之前Cookie在用户的计算机上以文本文件的形式存储。
在服务器上创建并向客户端输出Cookie可以利用Response对象实现。
Response对象支持一个名为Cookies的集合,可以将Cookie对象添加到该集合中,从而向客户端输出Cookie。
通过Request对象的Cookies集合来访问Cookie


0 0