《09第6章 构建网站.ppt》由会员分享,可在线阅读,更多相关《09第6章 构建网站.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 构建网站构建网站 6.1 ASP.NET网站综述网站综述 6.2 Response对象对象 6.3 Request对象对象 6.4 Application对象对象 6.5 Session对象对象 6.6 Server对象对象 6.7 构建网站示例构建网站示例6.1 ASP.NET网站综述网站综述 6.1.1 解决方案和项目解决方案和项目 6.1.2 ASP.NET网站布局网站布局 6.1.3 网站的组成文件网站的组成文件 6.1.4 网站文件类型网站文件类型 6.1.5 关于代码隐藏关于代码隐藏 6.1.6 网站的状态网站的状态6.1.1 解决方案和项目解决方案和项目 一个典型的一
2、个典型的ASP.NET网站由许多文件组成,网站由许多文件组成,这些文件包括这些文件包括Web窗体文件窗体文件(.aspx)、源程序、源程序文件文件(.cs or.vb)、程序集、程序集(.exe 或或.dll)、图、图片片(.jpg或或.gif)等。等。VS2005将这些文件统一将这些文件统一组织在一个文件夹中,这个文件夹的所有内容组织在一个文件夹中,这个文件夹的所有内容组成一个组成一个ASP.NET网站,也称为一个网站,也称为一个Web应应用程序。用程序。6.1.1 解决方案和项目解决方案和项目 当新建一个网站当新建一个网站(项目项目)时,时,VS2005会自动会自动为其创建一个解决方案,并
3、显示在解决方案资源为其创建一个解决方案,并显示在解决方案资源管理器中。所谓管理器中。所谓解决方案解决方案就是将与一项开发任务就是将与一项开发任务相关的多个项目组织在一起。相关的多个项目组织在一起。6.1.1 解决方案和项目解决方案和项目 新创建的网站项目仅包括新创建的网站项目仅包括ASP.NET保留文件保留文件夹夹App_Data和一个默认网页和一个默认网页Default.aspx。解决方案中可以包含多个项目,项目中又可以包解决方案中可以包含多个项目,项目中又可以包含多个文件夹和文件项。含多个文件夹和文件项。解决方案创建后系统会自动生成解决方案文解决方案创建后系统会自动生成解决方案文件件(.s
4、ln 和和.suo),为网站项目自动创建的解决方,为网站项目自动创建的解决方案文件默认存储在案文件默认存储在My DocumentsVisual Studio 2005Projects目录下与解决方案同名目录下与解决方案同名的子目录中。的子目录中。6.1.2 ASP.NET网站布局网站布局 网站项目由一系列文件组成。开发者可以为网站项目由一系列文件组成。开发者可以为这些文件创建任意的目录结构,以方便开发。但这些文件创建任意的目录结构,以方便开发。但是,为了更易于使用和管理网站,是,为了更易于使用和管理网站,ASP.NET保保留了某些可用于特定类型内容的文件和文件夹名留了某些可用于特定类型内容的
5、文件和文件夹名称。这些文件和文件夹被赋予了特殊的含义和特称。这些文件和文件夹被赋予了特殊的含义和特殊的处理方法。殊的处理方法。6.1.2 ASP.NET网站布局网站布局 n默认页默认页n如果用户在请求的如果用户在请求的URL中只输入网站名而不指定特中只输入网站名而不指定特定页面,定页面,Web服务器会为用户打开默认页服务器会为用户打开默认页(如果它如果它存在的话存在的话)。使用默认页将使用户更容易定位到你。使用默认页将使用户更容易定位到你开发的网站。开发的网站。n使用使用VS2005创建的网站,默认页为创建的网站,默认页为Default.aspx,它保存在网站的根文件夹中。可,它保存在网站的根
6、文件夹中。可以使用默认页作为网站的主页,或者在默认页中写以使用默认页作为网站的主页,或者在默认页中写入代码将用户请求重定向到真正的主页。入代码将用户请求重定向到真正的主页。6.1.2 ASP.NET网站布局网站布局 n应用程序文件夹应用程序文件夹n如果是一个新创建的网站,在如果是一个新创建的网站,在“解决方案资源管解决方案资源管理器理器”中,在网站名称上单击右键,在弹出式菜中,在网站名称上单击右键,在弹出式菜单中选择单中选择“添加添加ASP.NET文件夹文件夹”,在子菜单中,在子菜单中可以看到有可以看到有7个文件夹可供选择。加上系统已经个文件夹可供选择。加上系统已经默认创建的默认创建的App_
7、Data 文件夹,文件夹,ASP.NET 规定规定这这8个文件夹可用于存放特定类型的内容。个文件夹可用于存放特定类型的内容。6.1.2 ASP.NET网站布局网站布局 文件文件夹夹名称名称说说明明App_Browsers包含包含ASP.NET用于用于标识标识特定特定浏览浏览器并确定其功能的器并确定其功能的浏览浏览器定器定义义(.browser)文件。文件。App_Code包含希望作包含希望作为应为应用程序一部分用程序一部分进进行行编译编译的的实实用工具用工具类类和和业务对业务对象象(例如例如.cs、.vb 和和.jsl文件文件)的源代的源代码码。App_Data包含包含应应用程序数据文件,如用
8、程序数据文件,如MDF文件、文件、XML文件和文件和其他数据存其他数据存储储文件。文件。ASP.NET 2.0使用使用App_Data文件文件夹夹来存来存储应储应用程序的本地数据用程序的本地数据库库,该该数据数据库库可可用于用于维护维护成成员资员资格和角色等信息。格和角色等信息。App_GlobalResources包含包含编译编译到具有全局范到具有全局范围围的程序集中的的程序集中的资资源源(.resx 和和.resources文件文件)。App_GlobalResources文文件件夹夹中的中的资资源是源是强强类类型的,可以通型的,可以通过编过编程方式程方式进进行行访问访问。6.1.2 AS
9、P.NET网站布局网站布局 文件文件夹夹名称名称说说明明App_LocalResources包含与包含与应应用程序中的特定用程序中的特定页页、用、用户户控件或母版控件或母版页页关关联联的的资资源源(.resx和和.resources文件文件)。App_Themes包含用于定包含用于定义义ASP.NET网网页页和控件外和控件外观观的文件集的文件集合合(.skin和和.css文件以及文件以及图图像文件和一般像文件和一般资资源源)。App_WebReferences包含在包含在应应用程序中使用的用程序中使用的Web引用引用协议协议文件文件(.wsdl文件文件)、架构文件、架构文件(.xsd文件文件)
10、和和发现发现文档文文档文件件(.disco和和.discomap文件文件)。Bin包含要在包含要在应应用程序中引用的控件、用程序中引用的控件、组组件或其他代件或其他代码码的已的已编译编译程序集程序集(.dll文件文件)。在。在应应用程序中可以自用程序中可以自动动引用引用 Bin 文件文件夹夹中的代中的代码码所表示的所表示的类类。6.1.3 网站的组成文件网站的组成文件 图图6-2是本书是本书的应用实例的网站的应用实例的网站结构,包含了多个结构,包含了多个用户自定义的文件用户自定义的文件夹夹(如如images、Uploads)和文件。和文件。6.1.3 网站的组成文件网站的组成文件 n Glob
11、al.asaxnGlobal.asax文件是文件是ASP.NET网站所拥有的一个网站所拥有的一个全局性文件。该文件中定义了应用程序的全局事全局性文件。该文件中定义了应用程序的全局事件,它保存在应用程序的根文件夹中。件,它保存在应用程序的根文件夹中。n新创建的新创建的Global.asax包括包括5个空的全局事件处理个空的全局事件处理函数:函数:Application_Start、Application_End、Application_Error、Session_Start和和Session_End。6.1.3 网站的组成文件网站的组成文件 n Web.confignASP.NET网站的配置信息
12、存储在网站的配置信息存储在XML文本文件中,文本文件中,名为名为Web.config。Web.config文件可以出现在文件可以出现在ASP.NET应用程序的多个目录中。应用程序的多个目录中。n新创建网站时,默认情况下只创建必须的文件和新创建网站时,默认情况下只创建必须的文件和文件夹。因此,网站最初并未包含文件夹。因此,网站最初并未包含Web.config文文件、件、Global.asax文件等,也没有包含全部的文件等,也没有包含全部的ASP.NET保留文件夹。如果需要,用户可以自行保留文件夹。如果需要,用户可以自行创建。创建。6.1.4 网站文件类型网站文件类型文件文件类类型型说说明明.as
13、cx用用户户自定自定义义的的Web控件。控件。.aspxWeb页页面文件,面文件,该该文件可包含文件可包含Web控件和其他控件和其他业业务逻辑务逻辑。.browser浏览浏览器定器定义义文件,用于文件,用于标识标识客客户户端端浏览浏览器的启用器的启用功能。功能。.cd类类关系关系图图文件。文件。.cs、.jsl、.vb运行运行时时要要编译编译的的类类源代源代码码文件。一般存放在文件。一般存放在App_Code子目子目录录;但如果是;但如果是Web内容文件的代内容文件的代码隐码隐藏文件,藏文件,则则与其主文件位于同一目与其主文件位于同一目录录。.dll已已编译编译的的类库类库文件。一般存放在文件
14、。一般存放在Bin子目子目录录中。或中。或者,可以将者,可以将类类的源代的源代码码放在放在App_Code子目子目录录下。下。6.1.4 网站文件类型网站文件类型文件文件类类型型说说明明.master母版母版页页,它定,它定义应义应用程序中引用母版用程序中引用母版页页的其他的其他网网页页的布局。的布局。.mdb、.ldbAccess 数据数据库库文件。一般存放在文件。一般存放在App_Data子目子目录录。.mdfSQL 数据数据库库文件。一般存放在文件。一般存放在App_Data子目子目录录.resources、.resx资资源文件,源文件,该该文件包含指向文件包含指向图图像、可本地化文像、
15、可本地化文本或其他数据的本或其他数据的资资源字符串。一般存放在源字符串。一般存放在App_GlobalResources或或App_LocalResources子目子目录录。.skin用于确定用于确定显显示格式的外示格式的外观观文件。一般存放在文件。一般存放在App_Themes子目子目录录。6.1.5 关于代码隐藏关于代码隐藏 nVS 2005版页面代码的默认编写方式为代码版页面代码的默认编写方式为代码隐藏模型,即将内容代码与源代码分开。隐藏模型,即将内容代码与源代码分开。n所谓所谓内容文件内容文件,包括扩展名为,包括扩展名为.aspx的网页文件、的网页文件、扩展名为扩展名为.ascx的用户
16、自定义控件和扩展名为的用户自定义控件和扩展名为.master的母版页文件等。的母版页文件等。n而而代码隐藏文件代码隐藏文件,则是根据所使用的语言,在内,则是根据所使用的语言,在内容文件名的基础上容文件名的基础上(不去掉原扩展名不去掉原扩展名),再加上,再加上.cs(使用使用C#语言语言)或或.vb(使用使用Visual Basic语言语言)作作为扩展名。为扩展名。6.1.5 关于代码隐藏关于代码隐藏 n代码的第代码的第1行为一个行为一个 Page指令,该指令定义网指令,该指令定义网页一级属性。其中:页一级属性。其中:lLanguage属性:指明了默认的编程语言;属性:指明了默认的编程语言;lA
17、utoEventWireup属性:指明控件的事件是否自动属性:指明控件的事件是否自动匹配;匹配;lCodeFile属性:指明了隐藏代码文件的文件名;属性:指明了隐藏代码文件的文件名;lInherits属性:指明本页面编译后的类名称,该类在属性:指明本页面编译后的类名称,该类在源代码文件中实现。源代码文件中实现。l!DOCTYPE指令:用于指定文档类型定义指令:用于指定文档类型定义(DTD)。6.1.6 网站的状态网站的状态 n用户在使用基于用户在使用基于Web的应用程序时,所看到的是一的应用程序时,所看到的是一个个独立的页面。用户在向服务器请求这些页面并个个独立的页面。用户在向服务器请求这些页
18、面并得到响应时,使用的是得到响应时,使用的是HTTP协议,协议,HTTP协议是一协议是一种无状态的协议。但是,用户在不同的页面上进行种无状态的协议。但是,用户在不同的页面上进行不同的操作,这些操作有的是相互关联的。这就需不同的操作,这些操作有的是相互关联的。这就需要系统提供一些全局对象来保持页面之间的关联,要系统提供一些全局对象来保持页面之间的关联,将各页面组成一个有机的整体。这些对象包括将各页面组成一个有机的整体。这些对象包括Request对象、对象、Response对象、对象、Application对象、对象、Session对象、对象、Server对象等。对象等。应用程序状态管理应用程序状
19、态管理nHTTP是无状态协议,必须使用其他技术来保存是无状态协议,必须使用其他技术来保存Web请求之间的信息。请求之间的信息。ASP.NET提供了多种方法提供了多种方法以应对这一缺陷。具体有如下的选项:以应对这一缺陷。具体有如下的选项:n隐藏域隐藏域(Hidden Field)n视图状态视图状态(ViewState)n查询字符串查询字符串(Query String)n内置对象内置对象nApplicationnSessionnCookie)1、使用隐藏域、使用隐藏域n使用使用隐藏域隐藏域(Hidden Field)可以使内容不显)可以使内容不显示在示在IDE的设计视图中。的设计视图中。n在代码中
20、可以直接访问在代码中可以直接访问隐藏域隐藏域的的Value属性。属性。如:如:Response.Write(HF1.Value);(HiddenField.aspx)n优点:优点:n不需要任何服务器资源;不需要任何服务器资源;n支持所有的浏览器和客户端设备;支持所有的浏览器和客户端设备;n是标准的是标准的HTML控件,实现简单。控件,实现简单。n缺点:缺点:n数据直接暴露给用户,潜在的安全风险;数据直接暴露给用户,潜在的安全风险;n只能存储字符串数据,不支持复杂的数据类型。只能存储字符串数据,不支持复杂的数据类型。n如果隐藏域的数据量过大,影响传输速度。如果隐藏域的数据量过大,影响传输速度。1
21、、使用隐藏域、使用隐藏域2、使用视图状态、使用视图状态(ViewState)nASP.NET引入了引入了ViewState(视图状态视图状态)的概的概念。念。ASP.NET通过通过ViewState 自动保存控件自动保存控件的状态,对同一页的多个请求间自动保留属性的状态,对同一页的多个请求间自动保留属性值。视图状态作为页中隐藏域来进行维护。值。视图状态作为页中隐藏域来进行维护。n视图状态中的数据默认是使用视图状态中的数据默认是使用base64进行编进行编码的,用户不能直接看到里面的数据。是用来码的,用户不能直接看到里面的数据。是用来保存其信息的首选。视图状态在每次回发之间保存其信息的首选。视图
22、状态在每次回发之间保留控件的属性。保留控件的属性。(HiddenField.aspx)2、使用视图状态、使用视图状态(ViewState)n优点:优点:n不需要任何服务器资源不需要任何服务器资源(视图状态包含在页面代码的视图状态包含在页面代码的内部结构中内部结构中);n实现简单,无须用户编程;实现简单,无须用户编程;n视图状态中的值经过哈希计算和压缩,其安全性高视图状态中的值经过哈希计算和压缩,其安全性高于使用隐藏域。于使用隐藏域。n缺点:缺点:n由于视由于视图状态存储在页本身,因此如果存储较大的图状态存储在页本身,因此如果存储较大的值,用户显示页时的速度会减慢;值,用户显示页时的速度会减慢;
23、n仍有潜在的安全风险。仍有潜在的安全风险。3、查询字符串(、查询字符串(Query String)n查询字符串是在查询字符串是在URL的结尾附加的信息,通常是的结尾附加的信息,通常是”?”后面的部分。后面的部分。n利用利用查询字符串查询字符串可以很容易地将信息从一页传递到可以很容易地将信息从一页传递到另一页。另一页。n查询字符串查询字符串提供了一种维护某些状态信息的简单方提供了一种维护某些状态信息的简单方法。法。3、查询字符串(、查询字符串(Query String)n优点:优点:n不需要任何服务器资源;不需要任何服务器资源;n支持所有的浏览器和客户端设备;支持所有的浏览器和客户端设备;n实现
24、简单,实现简单,ASP.NET完全支持完全支持查询字符串查询字符串方法。方法。n缺点:缺点:n有限的容量,大多数浏览器和客户端设备会将有限的容量,大多数浏览器和客户端设备会将URL的最大长度限制为的最大长度限制为2083个字符。个字符。n容易暴露信息,或被人恶意篡改。容易暴露信息,或被人恶意篡改。对对象名象名说说明明ASP.NET 类类Response提供向提供向浏览浏览器写入信息或器写入信息或者者发发送指令等功能送指令等功能HttpResponseRequest提供从提供从浏览浏览器器读读取信息或取信息或者取客者取客户户端信息等功能。端信息等功能。HttpRequestApplication
25、为为所有用所有用户户提供共享信息提供共享信息HttpApplicationStateServer提供服提供服务务器端的一些属性器端的一些属性和方法和方法HttpServerUtilitySession为为某个用某个用户户提供共享信息提供共享信息HttpSessionStateASP.NET的的内置对象内置对象概述概述 这些内置对象已经由系统定义,可以直接使用。这些内置对象已经由系统定义,可以直接使用。ASP.NET的的内置对象内置对象概述概述 6.2 Response对象对象nResponse对象封装了对象封装了Web服务器向服务器向Web浏览器浏览器发送的发送的HTTP响应消息,响应消息,R
26、esponse对象也称为响对象也称为响应对象;应对象;nResponse对象为对象为HttpResponse对象的实例,对象的实例,是是ASP.NET自动创建的,因此也称为自动创建的,因此也称为内置对象内置对象。nResponse对象用来控制发送给客户端的信息,对象用来控制发送给客户端的信息,包括直接发送信息给浏览器、重定向到另一个包括直接发送信息给浏览器、重定向到另一个URL或设置或设置Cookie等等。nResponse对象的属性对象的属性nBuffer:获取或设置一个值,该值指示是否缓冲输出,获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送。并在完成处理整个响应之
27、后将其发送。nCookies:获取响应获取响应 Cookie 集合。集合。nExpires:获取或设置在浏览器上缓存的页过期之前的分获取或设置在浏览器上缓存的页过期之前的分钟数。钟数。nIsClientConnected:获取一个值,通过该值指示客户获取一个值,通过该值指示客户端是否仍连接在服务器上。端是否仍连接在服务器上。6.2 Response对象对象 nResponse对象的方法对象的方法n输出数据输出数据:Write(登录成功!);n清除缓冲清除缓冲:Clear();n网页转向网页转向:Redirect(Details.aspx);n停止输出停止输出:End();n输出文件输出文件:W
28、riteFile(FileName);(Response_Write.aspx、Response_Buffer.aspx 6.2 Response对象对象 6.3 Request对象对象nRequest对象封装了对象封装了Web浏览器向浏览器向Web服务器服务器发送的发送的HTTP请求消息;请求消息;nRequest对象是对象是HttpRequest类的实例,是由类的实例,是由ASP.NET自动创建的;自动创建的;nHttpRequest类使类使 ASP.NET 能够读取客户端能够读取客户端在在Web请求期间发送的请求期间发送的HTTP值;值;nRequest对象的主要功能是从客户端得到数据。
29、对象的主要功能是从客户端得到数据。6.3.1 Request对象的属性和方法 nRequest对象的属性对象的属性nBrowser:获取或设置有关正在请求的客户端的浏览获取或设置有关正在请求的客户端的浏览器功能的信息。器功能的信息。nCookies:获取客户端发送的获取客户端发送的 cookie 的集合。的集合。nFilePath:获取当前请求的虚拟路径。获取当前请求的虚拟路径。nForm:获取窗体变量集合。获取窗体变量集合。nQueryString:获取获取 HTTP 查询字符串变量集合。查询字符串变量集合。6.3.1 Request对象对象的属性和方法的属性和方法6.3 Request对象对象 Request对象的主要功能是从客户端得到数据。对象的主要功能是从客户端得到数据。nRequest对象的方法对象的方法nGetType()方法;方法;nMapPath()方法等方法等6.3.1 Request对象对象的属性和方法的属性和方法6.3 Request对象对象
限制150内