标签:
今天跑到图书馆看书,很多东西忘了,以至有时候求职面试时说不出来,便有空来看看书
以下是从《C#与ASP.NET程序设计教程》 王振武 著 一书上看到的,写的挺详细的,有时候会用到,便搬到这边来,共分享,学习;我只是知识的搬运工而已,哇咔咔!
内置对象名称 | 功能说明 |
Page | 对ASP.NET页面的内容进行处理 |
Requset | 获取客户端及服务端的相关信息 |
Response | 将HTTP相关数据及其有关信息发送到客户端 |
Server | 提供一系列与WEB相关的程序 |
Session | 在服务器的内存中储存客户会话的信息 |
Cookie | 在客户端储存与客户和网站相关的信息 |
Application | 在服务端储存应用程序多次访问的信息 |
Page对象的常用属性
IsPostBack:获取一个布尔类型的值,该值表示页面是否首次加载和访问;第一次访问为false,再次访问为true.
Form:获取页面的HTML窗体。
Validator:获取请求的页上包含验证控件的集合
Page对象的常用事件
PreInit:在页面初始化开始时的发生
Init:当服务器控件初始化时发生;初始化是控件生存期的第一步
InitComplite:在页初始化完成时发生
PreLoad:在页Load事件之前发生
Load:在服务器控件加载到Page对象中时发生
LoadComplete:在页生命周期的加载阶段结束时发生
PreRender:在加载Control对象之后,呈现之前发生
Unload:在服务器控件从内存中卸载时发生
Dispose:在从内存释放服务器控件时发生
DataBinding:当服务器控件绑定到数据源时发生
ASP.NET页面执行顺序大致如下:
Request对象的常用属性
Form:获取窗体变量的集合
QueryString:获取HTTP查询字符串变量集合
ServerVariables:获取Web服务器变量的集合
Cookie:获取客户端发送的Cooike的集合
Browser:获取或设置有关正在请求的客户端浏览器功能的信息
CilentCertificate:获取当前请求的客户端安全证书
<form id="form1" runat="Server" method="Post"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </form>
获取控件的值:
利用表单传递数据(POST) Request.Form["字段名称"] 或 Requset["字段名称"];
利用UML来传递数据(GET) Request.QueryString["字段名称"];
ServerVariables属性的语法格式
Request.ServerVariables["环境变量名称"]
常用的服务器环境变量
Browser属性 常用的浏览器属性
Request.Browser["浏览器属性名称"]
ClientCertificate属性
void Page_Load(object sender,EventArgs e) { Sysem.Web.HttpClientCertificate HDC=Request.ClientCertificate; Label1.Text=HDC.IsPresent.ToString(); //...... }
Response对象 常用属性及方法
Buffer:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送
BufferOutput:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送
Cache:获取Web页的缓存策略(过期时间,保密性,变化子句)
Cookies:获取响应Cookie集合
Write() :向客户浏览器输出信息
Redirect(): 将客户端重新定向到新的URL
BinaryWrite(): 输出二进制信息
Clear() :清除缓冲区中的所有HTTP页面
End() :将当前所有缓冲的输出发送到客户端,停止该页面的执行,并引发Application_EndRequest事件
Flush() :向客户端发送当前所有缓冲的输出
当编译器执行到Response.Redirect时,会立即打开该方法指定的页面,而Response.Redirect方法之后的语句完全没有执行的机会!
对于Redirect(),只有Buffer和BufferOutput设置为true时才执行,如果Buffer和BufferOutput属性为假,服务器将直接把页面输出到客户端,而在已经输出的HTML元素之后,又想把页面引导至另外一个页面显示是不允许的!
当执行Response.Clear()时,服务器缓冲区的内容将全部被清除,在客户端浏览器中,只能看到该语句之后的执行结果。
当执行Response.End()时,程序的执行被终止,缓冲区中的现有内容会全部输出到浏览器上,且End方法后的语句不会被执行。
当执行Response.Flush()时,会将缓冲区中的全部内容都输出到浏览器中,同时将缓冲区清空,且Flush方法后的语句可以继续执行。
Server对象 常用属性及方法 Server对象由System.Web.HttpServerUtility类实现
ScriptTimeout: 获取或设置请求超时值(单位为s)
Execute() : 在当前请求的上下文中执行指定虚拟路径的处理程序
Transfer() :终止当前页面的执行,并为当前请求开始执行新页
MapPath() :返回Web服务器上执行虚拟路径对象的物理路径
Session对象 由System.Web.SessionState.HttpSessionState类实现
Timeout 属性:获取并设置在会话状态提供程序终止会话之前各请求之间所允许的时间(以min为单位),默认为20min
Abandon() 方法:清除Session对象
作用是记载一次会话中的用户信息;ASP.NET应用程序为每个用户都维护一个Seesion对象,Seesion对象常被用来储存需要跨页面使用的信息。
Seesion对象中存放的是Object类型,当进行读取操作时需要做类型转换。
Session["Key"]=Value;
Session对象存在于服务器的内存中,因此不能无限期的占用服务器资源。默认有效期为20min ,可以通过Session.Timeout=100;重新设置
Cookie对象
该也是用来储存用户信息,不同之处在于Session对象将信息储存在服务器的内存中,而Cookie将用户信息储存在客户端。
Name:获取或设置Cookie的名称
Value:获取或设置Cookie的Value
Expires:获取或设置Cookie的过期日期和时间
Add() :新增一个Cookie变量
Clear() :清除Cookie集合内的变量
Get() :通过变量名或索引得到Cookie的变量值
GetKey:以索引值类获取Cookie的变量名称
//创建Cookie //创建Cooike有俩种方法 Response.Cookie["userName"].Value="Admin"; Response.Cookie["userName"].Expires=DateTime.Now.AddDays(1);
如果不设置失效时间,Cookie信息不会被写到用户硬盘,浏览器关闭时将会丢弃,也可以如下创建Cookie:
HttpCookie aCookie=new HttpCoopie("userName"); aCookie.Value=DateTime.Now.ToString(); aCookie.Expries=DateTime.Now.AddDays(1); Response.Cookie.Add(aCookie); //创建多值Cookie Response.Cookie["userInfo"]["userName"]="Admin"; Response.Cookie["userInfo"]["lastVisit"]=DateTime.Now.ToString(); Response.Cookie.Expires=DateTime.Now.AddDays(1);
读取Cookie
if(Request.Cookie["userName"]!=null) str=Server.HtmlEncode(Request.Cookie["userName"].Value); //多值Cookie读取例子 HttpCookie aCookie=Request.Cookie["userInfo"]; string userName=aCookie.Value["userName"]; string lastVisit=aCookie.Value["lastVisit"];
修改Cookie
HttpCookie aCookie=Request.Cookie["userInfo"]; aCookie.Values["userName"]="one_User"; //或者 aCookie.Value.Set("userName","one_User"); Response.AppendCookie(aCookie);
删除Cookie
HttpCookie aCookie=Request.Cookie["userInfo"]; aCookie.Values.Remove("userName");
优点:
缺点
Application对象
与Seesion对象储存信息的方式类型,Application对象也是将用户信息存在服务器中。
不同:Application对象是一个公有变量,允许多个用户对它进行访问,而Session对象只允许某个特定的用户访问。
语法:Application["ApplicationName"]=变量/常量/字符串/表达式;
由于允许多个用户对Application对象进行访问,所以要实现对公有资源的同步访问需要采用加锁和解锁的方式
Application.Lock(); Application["ApplicationName"]=App_Name; Application.UnLock()
各位道友,认真看完了么?不能白看呀,解决下面习题吧
标签:
原文地址:http://www.cnblogs.com/luobin991/p/4823683.html