C#.net的内部对象

我们比较常用的内部对象:Page、Request、Response、HttpCookie、Session、Application、Server、Mail 等
Page:
Page对象是由System.Web.UI.Page类实现,命名空间System.Web.UI
几个关键的属性
IsPostBack :页面上的表单是否提交
IsValid    :所有控件是否通过验证
关键的方法:
DataBind  :数据绑定
事件:
Load      :页面装载

提供一个例子
private void Page_Load(object sender,EventArgs e)
{
  if(Page.IsPostBack)
Message.Text=user_name.Text + "您好";
  else
Message.Text="您还没有提交";
}

另外在GridView的操作中,我们也经常使用IsPostBack限定对数据源的绑定

Request:
Request对象可以获取客户端的信息,如客户端IP地址等

它是由由System.Web.HttpRequest类实现,所属的命名空间: System.Web

重要的属性有:
QueryString、Form、Cookies、ServerVariables、ClientCertificate、Browser


QueryString可以获取标识在URL后面的所有返回的变量及其值。
例如,当客户端送出如下的请求时,QueryString将会得到name与age两个变量的值。
http://……/temp.aspx?name=XX&age=24
后面可以有多个变量参数,参数之间用&连接。

例如
        private void  page_load(object sender,EventArgs e)
{
string user_name;
int age;
user_name = Request.QueryString["user_name"];
                age = Convert.ToInt16(Request.QueryString["age"]);
                Message.Text = user_name + "您好";
Message.Text = Message.Text +  ",您的年龄是" + age.ToString();
}

ServerVariables数据集合可以方便地取得服务器端或客户端的环境变量信息,比如客户端的IP地址等等。
它的使用语法是Request.ServerVariables("环境变量名称")

常用的环境变量名称有:

LOCAL_ADDR:服务器端IP地址
REMOTE_ADDR:客户端IP地址
REMOTE_HOST:客户端主机名
SERVER_NAME:服务器名称
SERVER_PORT:HTTP数据请求时所用的端口号
例如:
        private void  page_load(object sender,EventArgs e)
{
    Message.Text="您的IP地址是:" + Request.ServerVariables["REMOTE_ADDR"];
}
Browser数据集合就可以方便地获取客户端浏览器特性,如类型、版本、是否支持背景音乐等。
它的语法是Request.Browser ("浏览器特性名称")

常用的浏览器特性名称:
Browser:浏览器类型名称
Version:浏览器版本名称
Cookies:是否支持cookie
Frames:是否支持框架
BackgroundSound:是否支持背景音乐

        private void  page_load(object sender,EventArgs e)
{
string str;
str = "浏览器类型:" + Request.Browser["Browser"];
str += " <br>浏览器版本:" + Request.Browser["Version"];
str += " <br>支持Cookies否:" + Request.Browser["Cookies"];
str += " <br>支持背景音乐否:" + Request.Browser["BackgroundSounds"];
        message.Text = strMessage;
}
TotalBytes属性可以得到客户端提交数据的字节大小,它的语法是Request.TotalBytes;

BinaryRead方法:前5种获取方法都是直接获取数据,而此方法可以二进制方式,获取客户端用Post方法提交的数据。

它的语法是Request.BinaryRead(字节大小)

说明:其中字节大小是用TotalBytes属性获得的响应数据的字节大小。

Response对象:
Response对象相当于服务端想客户端返回信息的对象,所以我们经常用来进行对客户端数据进行添加的操作
它是由System.Web.HttpResponse类实现,所属的命名空间: System.Web
它的重要属性:
Buffer、ContentType
重要方法:
Write、Redirect、End、Clear、Flush、BinaryWrite

Write方法是向客户端中写入一段信息
利用该方法就可以在客户端输出信息,效果和利用Label标签控件一样。
它的语法是Response.Write(变量数据或字符串)
例如:
Response.Write(user_name + "您好")      'user_name是一个变量,表示用户名
Response.Write("现在是: " + now() )        'now()是时间函数
Response.Write("业精于勤而荒于嬉 <p>")  '输出字符串

另外它还可以直接在HTML代码中动态输出信息,此时需要将语句用 <%和%>括起来,
例如:
<h4 align="center">Write方法示例 </h4>
<%
Response.Write("您好,欢迎光临")     
Response.Write(" <p>敬请提出宝贵意见")
%>
此时,它还有一种省略方式,例如:
<h4 align="center">Write方法示例 </h4>
<%="您好,欢迎光临"%>             
<%=" <p>敬请提出宝贵意见"%>

Redirect方法就可以引导客户端至另一个页面。它的语法是Response.Redirect(网址变量或字符串)
例如:
Response.Redirect("http://www.edu.cn")    '引导至中国教育网
Response.Redirect("other.asp")                '引导至站内其他网页
theURL="http://www.pku.edu.cn"
Response.Redirect(theURL)                  '引导至变量表示的网址

它和Server.Excute()方法的区别在于一个执行完之后引导到另一个页面,而Excute方法只是调用另一个页面的方法,并不会转到那个页面去
例如:我在考试中经常使用的一道题
你正在为TestKing的在线支付服务创建一个ASP.NET应用程序,这项服务允许用户通过使用电子信用卡来支付帐单。这个应用程序包含一个名为TestKPayment.aspx的支付页面,这个页面包括一个用于输入收款人、支付总数和信用卡信息的表单。当用户需要提交一个新的帐单地址给收款人时,页面表单允许用户提供新的地址信息给ProcessAddressChange.aspx,页面使用户提交支付信息时马上得到处理。这个ProcessAddressChange.aspx页面处理改变地址的请求,但不为用户提供任何信息。当请求处理完成时,ProcessAddressChange.aspx显示状态结果给用户。你需要添加一行代码到TestKPayment.aspx来执行ProcessAddressChange.aspx的功能,该使用哪行代码?(    )
A  Response.Redirect(“ProcessAddressChange.aspx”)
B  Response.WriteFile(“ProcessAddressChange.aspx”)
C  Server.Transfer(“ProcessAddressChange.aspx”,True)
D  Server.Execute(“ProcessAddressChange.aspx”)


Buffer属性用来设置服务器端是否将页面先输出到缓冲区。它的取值为True或False,默认为True。
它的语法是Response.Buffer=True | False
另外使用Response.redirect时必须保证Buffer值为True。

BinaryWrite该方法用于输出二进制信息,不进行任何字符转换,直接输出。其语法为Response.BinaryWrite(变量或字符串)
如果在数据库里保存了二进制信息,可以用该方法输出。
例如:从数据库中显示图片的信息就要用到该方法。
Session对象
利用Session对象 可以方便记录客户的信息。既使该客户从一个页面跳转到另一个页面,该Session信息仍然存在,客户在该网站的任何一个页面都可以存取Session信息
注:Session信息是对一个客户的,不同客户的信息用不同的Session对象记载。

Session对象由System.Web.SessionState类实现,所属的命名空间System.Web
重要的属性有
SessionID、TimeOut
重要的方法有
Abandon

我们一般利用Session存储登录用户的信息。
例如:
我们登录后在Page_Load中
private void  page_load(object sender,EventArgs e)
{
Session["user_name"] = "昀";
        Session["age"] = 22;
}
如果我们要取出Session中的值
private void  page_load(object sender,EventArgs e)
{
string user_name;
int age;
user_name = (string)Session["user_name"];
age = (int)Session["age"];
message.Text = user_name + "您好,您的年龄是" + age.ToString();
}

Session对象有它的有效期,默认为20分钟。客户端每新打开一个浏览器窗口,就会创建一个Session对象,如果超出20分钟没有和服务器端交互或者关闭了浏览器,则该Session对象就会自动结束。
修改有效期语法如下:
Session.Timeout=整数(分钟)
例如:
Session.Timeout=90  '将有效期改为90分钟

Session对象到期后会自动清除,但到期前可以用Abandon方法强行清除。语法:
Session.Abandon
例如:
Session(“user_name”)= “圆圆”;
Session.Abandon();
Response.Write(Session("user_name"));


Application对象
Session对象可以记载特定客户的信息,与此相反的是,Application对象可以记载所有客户信息
不同的客户必须访问不同的Session对象,但可以访问公共的Application对象

Application对象由System.Web.HttpApplication类实现
重要的方法有:
Lock
Unlock

我们经常会用Application存储一些共有的信息
它的存储语法是Application("Application名字")=变量、常量、字符串信息或表达式
例如:
Application.Lock
Application("user_num")=user_num     
Application (“city”)=“北京”     
Application.Unlock

我们可以利用Application对象做一个聊天的小程序,这个大家回去之后可以自己想一下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值