第3章ASPNet基础_第1页
第3章ASPNet基础_第2页
第3章ASPNet基础_第3页
第3章ASPNet基础_第4页
第3章ASPNet基础_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章ASP.NET基础知识主要内容:主要内容:ASP.NET的页面框架和页面类的介绍ASP.NET中存放各种程序文件的文件夹介绍ASP.NET核心对象的介绍ASP.NET的配置文件和全局文件的配置文件和全局文件41233 3.1 页面管理页面管理 ASP.NET页面是带.aspx扩展名的文本文件,可以被部署在IIS虚拟目录树之下。页面由代码和标签(tag)组成,它们在服务器上动态地编译和执行,为提出请求的客户端浏览器(或设备)生成显示内容。 4 3.1.1 ASP.NET页面代码模式页面代码模式 单一文件模式单一文件模式:页面的标签和代码在同一个.aspx文件中,程序代码包含在的服务器程

2、序脚本代码块中间. 代码分离代码分离(隐藏隐藏)模式:模式:把一个程序文件分为一个界面代码(.aspx)文件和一个控制代码(.aspx.cs)文件。单一文件模式和代码隐藏模式单一文件模式和代码隐藏模式6页面往返机制页面往返机制 ASP.NET网页是作为代码在服务器上运行的,因此,要使页面中的按钮或其他内容得到处理,必须将该信息提交到服务器。每次页面提交时,都会在服务器端运行其代码,然后把运行的结果呈现给用户。 7ASP.NET页面的处理流程如下:8 在生命周期中,该页面将主要执行下列处理在生命周期中,该页面将主要执行下列处理步骤:步骤: 1. 页面初始化页面初始化 引发该页的Page_Init

3、事件,并还原该页和控件视图状态。 2.页面装载页面装载 引发页面的Page_Load事件(在初始化之后)。 3.事件处理阶段事件处理阶段 4. 资源清理阶段资源清理阶段页面生存周期页面生存周期ASP.NET生命周期中的事件生命周期中的事件 1.Page_PreInit 页面加载事件页面加载事件 2.Page_Init 页面加载事件页面加载事件 3.Page_Load 页面载入事件页面载入事件 4.Page_UnLoad 页面卸载事件页面卸载事件 Page_PreInitPage_InitPage_InitComplete Page_PreLoad Page_Load Page_LoadComp

4、lete Page_PreReader Page_PreReaderCompletePage_SaveStateComplete Page_UnLoad11Page.IsPostBack 属性属性 获取一个布尔值,可以获取一个布尔值,可以检查.aspx页是否为传递回服务器的页面,用来判断页面是否是第一次被加载。 TrueTrue表示当前页是表示当前页是为响应客户端回发而加载为响应客户端回发而加载,FalseFalse表示表示首次加载和访问首次加载和访问。 程序private void Page_Load(object sender, System.EventArgs e) if(! Page.

5、IsPostBack )lblDate.Text =“Hello,World!”;从此处调用 Page_Load 事件/如果首次加载页面,才会执行括号内的操作123.2 特殊文件夹特殊文件夹 ASP.NET对程序进行设计将特定类型的文件存放在某些文件夹中,以方便在今后开发中的管理和操作。 ASP.NET保留了一些文件名称和文件夹名称,程序开发人员可以直接使用,并且还可以在应用程序中增加任意多个文件和文件夹。133.2.1 App_Data文件夹文件夹App_Data文件夹保存应用程序使用的数据库。它是一个集中存储应用程序所用数据库的地方。App_Data文件夹可以包含Microsoft SQL

6、 Express 文件(.mdf)、Microsoft Access文件(.mdb)、XML文件等。 143.2.2 App_Code 文件夹文件夹App_Code文件夹正好在Web应用程序根目录下,它存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。153.2.3 Bin文件夹文件夹Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的

7、可部署程序集。该目录中存在的任何.dll文件将自动地链接到应用程序。可以在Bin文件夹中存储编译的程序集,并且Web应用程序任意处的其他代码会自动引用该文件夹。典型的示例是您为自定义类编译好的代码,您可以将编译后的程序集复制到Web应用程序的Bin文件夹中,这样所有页都可以使用这个类。 163.3 ASP .NET内置对象概述内置对象概述 ASP .NET提供了6个可以直接使用的对象。如:Response、Request等,当Web应用程序运行时,这些对象可以用来维护有关当前应用程序、浏览器、Web服务器的活动状态等基本信息,并为浏览器与Web服务器的处理交互提供桥梁。 17对象名对象名功能说

8、明功能说明ResponseResponse用于向浏览器输出信息用于向浏览器输出信息RequestRequest用于获取来自浏览器的信息用于获取来自浏览器的信息ServerServer提供服务器端的一些属性和方法提供服务器端的一些属性和方法ApplicationApplication用于共享多个会话和请求之间的全局信息用于共享多个会话和请求之间的全局信息SessionSession用于存储特定用户的会话信息用于存储特定用户的会话信息CookiesCookies浏览器和服务器之间传递的一小段信息,用浏览器和服务器之间传递的一小段信息,用来保存用户信息,可以被存在浏览器的本地来保存用户信息,可以被存

9、在浏览器的本地硬盘中。硬盘中。3.3 ASP .NET内置对象概述内置对象概述18目标目标 使用 Response 对象 使用 Request 对象 使用 Server 对象 使用Session对象 使用Application对象 使用Cookie对象193.3.1 Response对象对象q由类System.Web.HttpResponse来实现。提供对当前页的输出流。q此类可用于:q向输出页面写入文本q将用户重新定向到另一个页面q有条件地结束应用程序连接q获取或设置输出流的属性值q。20Response:常用方法常用方法方法方法说明说明Write用于向当前 HTTP 响应流写入文本,使其成

10、为返回页面的一部分Redirect将用户从请求页面重新定向或带到另一页面WriteFile向浏览器输出文本文件expires浏览器上的缓冲存储的页距过期还有多久21Write方法方法 WriteWrite方法用来向客户端输出信息方法用来向客户端输出信息。例如:。例如:ResponseResponse. .WriteWrite( ( 现在时间为:现在时间为: + + DateTimeDateTime. .NowNow. .ToString()ToString(); ); . .RedirectRedirect方法:方法:q用来重定向页面用来重定向页面,例如:,例如:ResponseRespons

11、e. .RedirectRedirect( (login.aspxlogin.aspx););ResponseResponse. .RedirectRedirect( (http:/ RequestqRequest 对象可以获取来自客户端的信息。这些信息包括:q客户通过表单(form)或URL地址串发送来的值q客户端的基本信息q在客户端浏览器上为网站存储的 Cookieq24属性名称属性名称说明说明QueryString获得查询字符串的集合(数据附加到URL传送)Form 获得网页中定义的窗体变量的集合(数据嵌入HTTP 请求中传送)。客户浏览器信息、ip地址等Request 对象的常用属性3

12、.3.2 Request25Form数据集合数据集合 用来获取客户端通过用来获取客户端通过POSTPOST方法传送的表单方法传送的表单数据:数据:26用来获取客户端通过用来获取客户端通过GET方法传送的表单数据方法传送的表单数据客户端使用如下地址请求客户端使用如下地址请求:http:/localhost/doit.aspx?name=zhangsan&sex=nan在doit.aspx中就可以使用Request.QueryStringname和Request.QueryStringsex来获取相应的值zhangsan和nan。QueryString数据集合数据集合27Request:Q

13、uerystring 提交前 private void btnSubmit_Click(object sender, System.EventArgs e) string strURL=; strURL=“TargetPage.aspx?Name= + txtName.Text+&pwd=+ txtPwd.Text ; Response.Redirect(strURL); Request:Querystring 提交前 QueryString数据集合28HttpRequest:Querystring 提交后 private void Page_Load(object sender, S

14、ystem.EventArgs e)string userNm=Request.QueryStringName;Response.Write(欢迎);Response.Write(userNm);Response.Write (你的密码是:+Request.QueryStringpwd);29Response_Request例子例子30Browser属性属性HttpBrowserCapabilities bc = Request.Browser;Response.Write(您所用的浏览器信息如下:);Response.Write(名称及版本: + bc.Type + );Response.W

15、rite(类型: + bc.Browser + );Response.Write(版本号: + bc.Version + );Response.Write(主版本号: + bc.MajorVersion + );Response.Write(次版本号: + bc.MinorVersion + );Response.Write(平台: + bc.Platform + );Response.Write(是否为测试版: + bc.Beta + ); Response.Write(是否为基于Win16计算机: + bc.Win16 + );Response.Write(是否为基于Win32计算机: +

16、 bc.Win32 + );Response.Write(是否支持HTML框架: + bc.Frames + );Response.Write(是否支持HTML表格: + bc.Tables + );Response.Write(是否支持Cookie: + bc.Cookies + );Response.Write(是否支持ActiveX: + bc.ActiveXControls + );31Browser属性属性32Request其它对象其它对象Response.Write(客户端浏览器:+Request.UserAgent+ );Response.Write(客户端IP地址:+Reque

17、st.UserHostAddress+ );Response.Write(当前文件服务器端物理路径:+Request.PhysicalApplicationPath );333.3.3 Server 对象对象Execute 方法和 Transfer 方法HTMLEncode方法MapPath 方法URLEncode 方法方法通过Server对象可以访问服务器的方法和属性可以访问服务器的方法和属性,获取有关服务器的信息。其对应HttpServerUtility类。34ExecuteTransferURL 参数指定的页面处理完后,控制权会返回给先前的页面或调用此方法的页面,并且从此方法调用后的语句

18、继续执行 URL 参数指定的页面处理完后,控制权不会返回给先前的页面,也不会返回给调用此方法的页面,并且在新页面完成执行时结束 注意:Server 对象的 Transfer 方法和 Execute 方法仅用于 Web 窗体Execute 方法和 Transfer 方法均会停止当前页面的执行,并将用户带到由此方法的参数 URL 指定的页面3.3.3 Server 对象对象35private void btnExec_Click(object sender, System.EventArgs e) Server.Execute (ResponseProperties.aspx); lblForEx

19、ecute.Text=客户端调用 Execute 方法之后!;private void btnTransfer_Click(object sender, System.EventArgs e) Server.Transfer (RequestProperties.aspx); lblForExecute.Text=“客户端调用 Transfer 方法之后!;3.3.3 Server 对象对象36HTMLEncode 方法:q 为了确保所有浏览器均能在 URL 字符串中正确地传送文本,需要使用 HTML 编码。HTMLEncode 方法正是起这个作用的,它能将HTML标记按文本显示。q 例如,如

20、果输入文本包含 “”字符,此方法会将这些字符转换为其对等的 HTML 字符,即分别为 &lt 和 &gt,以便浏览器将这些字符正确地显示为“”HTMLEncode(String)要编码为 HTML 的文本语法3.3.3 Server 对象对象37HTMLEncode的使用private void Page_Load(object sender, System.EventArgs e) Response.Write(测试表示用粗体显示); Response.Write(); Response.Write(<B>测试</B>表

21、示用粗体显示); Response.Write(); Response.Write(Server.HtmlEncode(测试表示用粗 体显示);3.3.3 Server 对象对象38URLEncode 方法:q 在 HTML 编码中,将文本编码成相应的 HTML 是为了在浏览器中正确地显示 q 如果是要求可靠的 HTTP 传输通过 URL 将编码文本从 Web 服务器传送到客户端,该怎么办? q 可使用 URLEncode 方法实现此目的。它将文本编码以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输语法要编码为 HTML 传输的文本 URLEncode(String)3.

22、3.3 Server 对象对象39private void Page_Load(object sender, System.EventArgs e) string MyURL; MyURL = http:/ =张 三; Response.Write(这是用Response.Write(Server.UrlEncode(MyURL)的结 果:+ Server.UrlEncode(MyURL) + ); Response.Write(这是用Response.Write(MyURL)的结果:+MyURL);3.3.3 Server 对象对象40MapPath 方法:q Web 应用程序位于 IIS

23、根目录下的虚拟目录中q 因此,我们请求网页时,引用称为“虚拟路径”的虚拟目录路径。但是经常需要得到 Web 服务器上的 Web 资源的实际物理路径q 用 MapPath 方法,我们可从其虚拟路径得到我们可从其虚拟路径得到 Web 资源(如 .aspx 页面)的物理路径MapPath(string path)Web 服务器上的指定虚拟路径3.3.3 Server 对象对象41MapPathResponse.Write(当前目录物理路径:+Server.MapPath(.)+);Response.Write(上级目录物理路径:+Server.MapPath(.) +);Response.Write

24、(网站根物理路径:+Server.MapPath(/) +);Response.Write(“当前页面物理路径:+Server.MapPath(WebForm2.aspx);Application、Session和Cookie对象433.3.4 Application对象对象 ASP.NET 应用程序是单个应用程序是单个 Web 服务器上服务器上的某个虚拟目录及其子目录范围内的所有的某个虚拟目录及其子目录范围内的所有文件、页、处理程序、模块和代码的总和文件、页、处理程序、模块和代码的总和。q如果想在整个应用程序范围内存储一些所有用户共享的信息,Application对象将是最佳的选择,利用Ap

25、plication存储的变量和对象在整个应用程序内执行的所有ASP.NET页面中都是可用的,并且值也是相同的。44Application 变量变量变量用于在应用程序执行时存储数据应用程序级会话级string myname = “张三;Response.Write (“欢迎 + myname);45Lock 和和 Unlock 方法方法 Lock()Lock() 用于防止用户更改 Application 对象的属性 Lock() 可用作 Application.Lock() UnLock()Unlock() 方法用于释放对应用程序变量的锁定UnLock() 可用作Application.UnLo

26、ck()46向应用程序添加、更新和移除项向应用程序添加、更新和移除项 方法方法说明说明Add()向 Application 状态添加新对象。例如,下列代码会向应用程序状态添加项:Application.Add(“Title”, “Article board”);或 Application(“Title”) = “Article Board”; Clear()从 Application 状态中移除所有对象 Remove()从 Application 集合中按名称移除项。例如,下列代码移除 Title 项:Application.Remove(Title) 47Global.asax Global

27、.asax 文件(也称作 ASP.NET 应用程序文件),包含用于响应 ASP.NET 引发的应用程序级别事件的代码。Global.asax 文件驻留在基于 ASP.NET 的应用程序的根目录中。 48Global.asax事件说明Application_Start当第一个页面被请求时Application_End应用程序的最后一个会话结束时触发。(IIS终止应用程序时)Application_BeginRequest每次页面请求开始时触发(页面刷新时)Application_EndRequest每次页面请求结束时(即每次在浏览器上执行页面时)触发Session_Start每次新的会话开始时触

28、发Session_End会话结束时触发。49对象级变量对象级变量private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面Response.Write(你是第+ ApplicationUserNum.ToString() + 位访客);503.3.5 Session对象对象 存储局部的、特定于用户的信息。存储局部的、特定于用户的信息。 当新用户请求应用程序的网页时,当新用户请求应用程序的网页时,ServerServer 对对象会检查用户是否有象会检查用户是否有 SessionIDSessionID 对应于

29、浏览器与服务器的同一次会话,在浏览对应于浏览器与服务器的同一次会话,在浏览器第一次请求应用程序的某个页面时,会话开器第一次请求应用程序的某个页面时,会话开始;在会话超时或被关闭时,会话结束。始;在会话超时或被关闭时,会话结束。在用在用户会话期间可以记录和监视特定于用户的信息户会话期间可以记录和监视特定于用户的信息 可以在可以在Global.asaxGlobal.asax文件中编写文件中编写Session_StartSession_Start和和Session_EndSession_End事件处理程序。事件处理程序。51Session 变量变量 Session 变量与 Application 变

30、量不同 Session 变量仅提供给会话中的特定用户 Session 变量可用于存储在整个用户会话过程中都可以访问的值52 private void btnLogin_Click(object sender, System.EventArgs e) if(this.txtName.Text.Trim()!= | this.txtPwd.Text.Trim()!=) if(this.txtName.Text=张三 & this.txtPwd.Text= 123456) SessionUserName=this.txtName.Text.Trim(); Response.Redirect(

31、SessionVariableWelcome.aspx?pwd= +this.txtPwd.Text ); else SessionUserName=;RegisterStartupScript(Check,alert(用户名或密码不对,请检查!); ); else SessionUserName=; 53使用示例使用示例private void Page_Load(object sender, System.EventArgs e)if(SessionUserName.ToString().Trim()!=) Response.Write (alert(欢迎 +SessionUserName

32、 + 光临,你的密码是: +Requestpwd.ToString()+);else Response.Redirect(SessionVariableNew.aspx);54使用示例使用示例55Session事件事件 Session_Start当新用户访问一个应用程序时会激活该事件 Session_End用户退出应用程序时,就会触发 Session_End 事件56Session 属性属性Session 事件Session_StartSession_End属性说明SessionID包含一个唯一的用户会话标识符。它用于在会话过程中跟踪用户的信息。要检索 SessionID,使用 Session

33、.SessionIDTimeOut设置用户超时,即它以分钟为单位指定 Session 对象在释放资源之前能够保持闲置的时间。用户可导航至另一个站点而不用关闭该应用程序。如果设定了超时属性,则无人操作的用户会话可被清除,由此释放服务器的资源。 默认值为 20 分钟。可通过在 ASPX 文件中赋值来更改此设置。例如,LCID用于设定本地标志符. 它可存储本地信息,如日期、货币和时间格式。例如 Session.LCID = 0 x040C 将本地标识符设定为法国本地标识符IsNewSession若该会话是由当前请求创建的,该属性将返回值 trueItem获取或设置会话值的名称Count获得会话状态集

34、合中的项数Application 和和Session的区别的区别 1、application是全局对象,在程序运行时建立,只被创建一次。也就是说虽然你的程序发布了,但是这个时候你的程序并没有被运行,所以application对象没有被创建,而这个时候有一个人访问了你的网站,那么你的程序就被第一次运行了,从而使application对象被创建,当第二个人访问你的网站的时候application对象是不会被再次创建的,可以拿过来就使用。我们可以使用application对象统计在线的用户数。一句话总结:application对象可以多用户同时使用。2、session是会话的意思,一个用户对应一个s

35、ession,用户访问网站的时候session被建立,用户关闭网页的时候session被释放。session可以用来保存用户登陆信息等。583.3.6 Cookie介绍介绍 Cookie俗称甜饼,可以在客户端长期保存信息。它是服务器端发送到客户端浏览器的文本串句柄,保存在客户的硬盘上。 其是写入客户端的一些小文件,当用户再次访问某站点,应用程序检索以前保存的信息(个人信息,浏览器信息,何时访问过该站,从事哪些活动等)59Cookie的基本工作原理的基本工作原理 假设用户请求访问网站上的某个页面时,应用程序发送给该用户的不仅仅只有一个页面,还有一个包含日期和时间信息的Cookie,用户的浏览器在

36、获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。以后,如果该用户再次访问该网站上的页面,浏览器就会在用户本地硬盘上查找与该URL相关联的Cookie。如果该Cookie存在,浏览器就将它与页面请求一起发送到网站,应用程序就能读取Cookie信息从而能确定该用户上一次访问网站的日期和时间。程序可以根据这些信息向用户输出相应的消息。 60 Cookie对象其实是:利用Response对象的Cookies方法设置Cookies;利用Request对象的Cookies获取方法来获取Cookies的值。属性:Expires: 获取或设置此 Cookie 的过期日期和时间

37、,默认1000分钟。Name: 获取或设置 Cookie 的名称。Value: 获取或设置单个 Cookie 值。 61 存储一个 Cookie 变量: Response.Cookie“name”.Value = “zhangsan”;读取一个 Cookie 变量: Request.Cookiename.Value;设置Cookie到期时间: Response.Cookiename.Expires = #2008/10/1;62设置设置Cookie代码代码 HttpCookie mycookie=new HttpCookie(userage);mycookie.Value=23.ToString();mycookie.Expires=DateTime.Now.AddDays(3);Response.Cookies.Add(mycookie);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论