ASP.NET常用系统对象与状态保持
Page:指向页面自身的方式,作用域为页面执行期
Request:读取客户端在Web请求期间发送的值(http请求报文数据)
Response:封装了页面执行期返回到HTTP客户端的输出(http响应报文数据)
Server:提供服务器上的方法和属性的访问
ViewState:自动保存非表单元素的服务器控件的状态
Cookie:客户端保持会话信息的一种方式
Session:会话期状态保持对象,用于跟踪单一用户的会话。
Application:作用于整个程序运行期的状态对象
1.Page:
@Page指令定义了ASP.NET页面用于编译和解析的属性,每个aspx页面只能有一个@page指令
Language:指定页面代码和后置代码使用的语言,需要注意的是,这里只支持微软.NET框架中的语言
AutoEventWireup:设置页面是否自动调用网页事件,默认为true。设置为false时只是不执行page开头的事件.
CodeFile:指定代码后置文件名,后置代码,该后置代码与页面是局部关系。
Inherits:页面类。
2.Request:
QueryString属性:获取通过get方式传来的数据
Form属性:获取通过post方式传来的数据
Params属性:客户端提交的数据集合。。string ua = context.Request.Params["HTTP_USER_AGENT"];获取user-agent的意义:简单的判断是电脑设备还是移动设备。 Request.UserAgent判断是电脑设备还是移动设备,和以上一样
UrlReferrer 上一个页面的url (uri类型) 作用:记录访问的搜索引擎及关键字,防盗链
UserHostAddress: 获得访问者的IP地址 作用:投票
MapPath(): 把相对路径转换成物理路径
Request.Browser:获取或设置有关正在请求的客户端的浏览器功能的信息。
3.Response:
Write方法:直接在页面上输出内容
Redirect:告诉浏览器转向另一个页面,并且它前后的Write都不会输出给浏览器。反编译后:前面的Write不输出是因为clear()了,后面的Write不输出是因为End()了.
End方法:停止该页的执行
Response.Buffer、Response.BufferOutput:经过Reflector反编译,发现两个属性是一样的,Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用响应缓存,默认是true。
Response.Flush():将缓冲区中的数据发送给浏览器。这在需要将Write出来的内容立即输出到浏览器的场合非常适用。案例:大批量数据的导入,显示正在导入第*条数据
Response.Clear()清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会被发送到浏览器。
Response.ContentType: 输出流的内容类型,比如是html(text/html)还是普通文本(text/plain)还是JPEG图片(image/JPEG)。
4.Server:
Server.MapPath():和Request.MatPath()一样
Server.Transfer():执行另一个页面,结束本次页面的执行.Transfer是内部接管,因此不能像Redirect那样重定向到外部网站
Server.Execute():执行另一个页面,执行完成后返回本页面
Server.UrlEncode():url编码,对汉字,&=等特殊符号编码。Request.QueryString()内部调用了UrlDecode()解码
Server.UrlDecode():url解码
Server.HtmlDecode()、Server.HtmlEncode() Server.UrlEncode()、 Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用。推荐总是使用HttpUtility,因为有的地方很难拿到Server对象
HttpUtility.HtmlEncode():把Html中的特殊符号转义
HttpUtility.HtmlDecode():把转义符转化为html中的特殊符号
5.ViewState:
页面上必须有一个服务器端窗体标记(<form runat=“server”>)
服务器将ViewState里保存的值经过Base64编码后,自动添加到页面的隐藏域中
使用ViewState可以方便的在服务器端将数据输出保存到客户端页面的一个隐藏域中
禁用控件的ViewState EnableViewState="false"
6.Cookie:
Cookie是一种能够让网站服务器把少量数据(4kb左右)储存到客户端的硬盘或内存,并且读取出来的一种技术
服务器设置Cookie:
HttpCookie cok = new HttpCookie(“uId”, “10001”);//(“键”,”值”)
cok.Expires = DateTime.Now.AddDays(18);//设置失效日期-现在之后的18天后
context.Response.Cookies.Add(cok); //添加到响应中
服务器获得客户端传来的Cookie:
string strUName=context.Request.Cookies[“uId”].Value;//从请求中获得Cookie
Cookie有两种保存方式,一种在浏览器缓存中,关闭浏览器,缓存消息。一种是硬盘中,设置过期时间。设置了Expires属性的cookie只存在硬盘中,没设置的保存在浏览器中。
Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。
7.Session:
一般处理程序中使用session需要实现IRequiresSessionState接口
在服务器端创建一个session对象的时候,生成了一个id保存到Cookie中,然后在服务器中建立一个以id为Key,复杂数据为Value全局Dictionary。
开始并为Session赋值:
Session[“uName”]=“CNYaoMing”;
取值:
string strName = Session[“uName”].ToString();
销毁(取消/退出):
Session.Abandon();//销毁服务器端的Session对象Session.Clear();//清空服务端的Session对象里的键值对,Session对象并没有从Session池里销毁
8.Application:
Application对象可以存储应用程序级的数据
第一个用户访问站点时,应用程序启动,并创建一个Application对象。创建成功后,整个应用程序中都可以使用该对象。除非应用程序关闭,否则对象一直存储在内存中。

浙公网安备 33010602011771号