您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 09第6章 构建网站
第6章构建网站6.1ASP.NET网站综述6.2Response对象6.3Request对象6.4Application对象6.5Session对象6.6Server对象6.7构建网站示例6.1ASP.NET网站综述6.1.1解决方案和项目6.1.2ASP.NET网站布局6.1.3网站的组成文件6.1.4网站文件类型6.1.5关于代码隐藏6.1.6网站的状态6.1.1解决方案和项目一个典型的ASP.NET网站由许多文件组成,这些文件包括Web窗体文件(.aspx)、源程序文件(.csor.vb)、程序集(.exe或.dll)、图片(.jpg或.gif)等。VS2005将这些文件统一组织在一个文件夹中,这个文件夹的所有内容组成一个ASP.NET网站,也称为一个Web应用程序。6.1.1解决方案和项目当新建一个网站(项目)时,VS2005会自动为其创建一个解决方案,并显示在解决方案资源管理器中。所谓解决方案就是将与一项开发任务相关的多个项目组织在一起。6.1.1解决方案和项目新创建的网站项目仅包括ASP.NET保留文件夹App_Data和一个默认网页Default.aspx。解决方案中可以包含多个项目,项目中又可以包含多个文件夹和文件项。解决方案创建后系统会自动生成解决方案文件(.sln和.suo),为网站项目自动创建的解决方案文件默认存储在MyDocuments\VisualStudio2005\Projects目录下与解决方案同名的子目录中。6.1.2ASP.NET网站布局网站项目由一系列文件组成。开发者可以为这些文件创建任意的目录结构,以方便开发。但是,为了更易于使用和管理网站,ASP.NET保留了某些可用于特定类型内容的文件和文件夹名称。这些文件和文件夹被赋予了特殊的含义和特殊的处理方法。6.1.2ASP.NET网站布局默认页如果用户在请求的URL中只输入网站名而不指定特定页面,Web服务器会为用户打开默认页(如果它存在的话)。使用默认页将使用户更容易定位到你开发的网站。使用VS2005创建的网站,默认页为Default.aspx,它保存在网站的根文件夹中。可以使用默认页作为网站的主页,或者在默认页中写入代码将用户请求重定向到真正的主页。6.1.2ASP.NET网站布局应用程序文件夹如果是一个新创建的网站,在“解决方案资源管理器”中,在网站名称上单击右键,在弹出式菜单中选择“添加ASP.NET文件夹”,在子菜单中可以看到有7个文件夹可供选择。加上系统已经默认创建的App_Data文件夹,ASP.NET规定这8个文件夹可用于存放特定类型的内容。6.1.2ASP.NET网站布局文件夹名称说明App_Browsers包含ASP.NET用于标识特定浏览器并确定其功能的浏览器定义(.browser)文件。App_Code包含希望作为应用程序一部分进行编译的实用工具类和业务对象(例如.cs、.vb和.jsl文件)的源代码。App_Data包含应用程序数据文件,如MDF文件、XML文件和其他数据存储文件。ASP.NET2.0使用App_Data文件夹来存储应用程序的本地数据库,该数据库可用于维护成员资格和角色等信息。App_GlobalResources包含编译到具有全局范围的程序集中的资源(.resx和.resources文件)。App_GlobalResources文件夹中的资源是强类型的,可以通过编程方式进行访问。6.1.2ASP.NET网站布局文件夹名称说明App_LocalResources包含与应用程序中的特定页、用户控件或母版页关联的资源(.resx和.resources文件)。App_Themes包含用于定义ASP.NET网页和控件外观的文件集合(.skin和.css文件以及图像文件和一般资源)。App_WebReferences包含在应用程序中使用的Web引用协议文件(.wsdl文件)、架构文件(.xsd文件)和发现文档文件(.disco和.discomap文件)。Bin包含要在应用程序中引用的控件、组件或其他代码的已编译程序集(.dll文件)。在应用程序中可以自动引用Bin文件夹中的代码所表示的类。6.1.3网站的组成文件图6-2是本书的应用实例的网站结构,包含了多个用户自定义的文件夹(如images、Uploads)和文件。6.1.3网站的组成文件Global.asaxGlobal.asax文件是ASP.NET网站所拥有的一个全局性文件。该文件中定义了应用程序的全局事件,它保存在应用程序的根文件夹中。新创建的Global.asax包括5个空的全局事件处理函数:Application_Start、Application_End、Application_Error、Session_Start和Session_End。6.1.3网站的组成文件Web.configASP.NET网站的配置信息存储在XML文本文件中,名为Web.config。Web.config文件可以出现在ASP.NET应用程序的多个目录中。新创建网站时,默认情况下只创建必须的文件和文件夹。因此,网站最初并未包含Web.config文件、Global.asax文件等,也没有包含全部的ASP.NET保留文件夹。如果需要,用户可以自行创建。6.1.4网站文件类型文件类型说明.ascx用户自定义的Web控件。.aspxWeb页面文件,该文件可包含Web控件和其他业务逻辑。.browser浏览器定义文件,用于标识客户端浏览器的启用功能。.cd类关系图文件。.cs、.jsl、.vb运行时要编译的类源代码文件。一般存放在App_Code子目录;但如果是Web内容文件的代码隐藏文件,则与其主文件位于同一目录。.dll已编译的类库文件。一般存放在Bin子目录中。或者,可以将类的源代码放在App_Code子目录下。6.1.4网站文件类型文件类型说明.master母版页,它定义应用程序中引用母版页的其他网页的布局。.mdb、.ldbAccess数据库文件。一般存放在App_Data子目录。.mdfSQL数据库文件。一般存放在App_Data子目录.resources、.resx资源文件,该文件包含指向图像、可本地化文本或其他数据的资源字符串。一般存放在App_GlobalResources或App_LocalResources子目录。.skin用于确定显示格式的外观文件。一般存放在App_Themes子目录。6.1.5关于代码隐藏VS2005版页面代码的默认编写方式为代码隐藏模型,即将内容代码与源代码分开。所谓内容文件,包括扩展名为.aspx的网页文件、扩展名为.ascx的用户自定义控件和扩展名为.master的母版页文件等。而代码隐藏文件,则是根据所使用的语言,在内容文件名的基础上(不去掉原扩展名),再加上.cs(使用C#语言)或.vb(使用VisualBasic语言)作为扩展名。6.1.5关于代码隐藏代码的第1行为一个@Page指令,该指令定义网页一级属性。其中:Language属性:指明了默认的编程语言;AutoEventWireup属性:指明控件的事件是否自动匹配;CodeFile属性:指明了隐藏代码文件的文件名;Inherits属性:指明本页面编译后的类名称,该类在源代码文件中实现。!DOCTYPE指令:用于指定文档类型定义(DTD)。6.1.6网站的状态用户在使用基于Web的应用程序时,所看到的是一个个独立的页面。用户在向服务器请求这些页面并得到响应时,使用的是HTTP协议,HTTP协议是一种无状态的协议。但是,用户在不同的页面上进行不同的操作,这些操作有的是相互关联的。这就需要系统提供一些全局对象来保持页面之间的关联,将各页面组成一个有机的整体。这些对象包括Request对象、Response对象、Application对象、Session对象、Server对象等。应用程序状态管理HTTP是无状态协议,必须使用其他技术来保存Web请求之间的信息。ASP.NET提供了多种方法以应对这一缺陷。具体有如下的选项:隐藏域(HiddenField)视图状态(ViewState)查询字符串(QueryString)内置对象ApplicationSessionCookie)1、使用隐藏域使用隐藏域(HiddenField)可以使内容不显示在IDE的设计视图中。asp:HiddenFieldID=“HF1”runat=“server”Value=“隐藏内容”/。在代码中可以直接访问隐藏域的Value属性。如:Response.Write(HF1.Value);(HiddenField.aspx)优点:不需要任何服务器资源;支持所有的浏览器和客户端设备;是标准的HTML控件,实现简单。缺点:数据直接暴露给用户,潜在的安全风险;只能存储字符串数据,不支持复杂的数据类型。如果隐藏域的数据量过大,影响传输速度。1、使用隐藏域2、使用视图状态(ViewState)ASP.NET引入了ViewState(视图状态)的概念。ASP.NET通过ViewState自动保存控件的状态,对同一页的多个请求间自动保留属性值。视图状态作为页中隐藏域来进行维护。视图状态中的数据默认是使用base64进行编码的,用户不能直接看到里面的数据。是用来保存其信息的首选。视图状态在每次回发之间保留控件的属性。(HiddenField.aspx)2、使用视图状态(ViewState)优点:不需要任何服务器资源(视图状态包含在页面代码的内部结构中);实现简单,无须用户编程;视图状态中的值经过哈希计算和压缩,其安全性高于使用隐藏域。缺点:由于视图状态存储在页本身,因此如果存储较大的值,用户显示页时的速度会减慢;仍有潜在的安全风险。3、查询字符串(QueryString)查询字符串是在URL的结尾附加的信息,通常是”?”后面的部分。利用查询字符串可以很容易地将信息从一页传递到另一页。查询字符串提供了一种维护某些状态信息的简单方法。3、查询字符串(QueryString)优点:不需要任何服务器资源;支持所有的浏览器和客户端设备;实现简单,ASP.NET完全支持查询字符串方法。缺点:有限的容量,大多数浏览器和客户端设备会将URL的最大长度限制为2083个字符。容易暴露信息,或被人恶意篡改。对象名说明ASP.NET类Response提供向浏览器写入信息或者发送指令等功能HttpResponseRequest提供从浏览器读取信息或者取客户端信息等功能。HttpRequestApplication为所有用户提供共享信息HttpApplicationStateServer提供服务器端的一些属性和方法HttpServerUtilitySession为某个用户提供共享信息HttpSessionStateASP.NET的内置对象概述这些内置对象已经由系统定义,可以直接使用。服务器Application对象Response对象Request对象Session对象Response对象Request对象Session对象客户端客户端Server对象客户请求服务器响应服务器响应客户请求ASP.NET的内置对象概述6.2Response对象Response对象封装了Web服务器向Web浏览器发送的HTTP响应消息,Response对象也称为响应对象;Response对象为HttpResponse对象的实例,是ASP.NET自动创建的,因此也称为内置对象。Response对象用来控制发送给客户端的信息,包括直接发送信息给浏览器、重定向到另一个URL或设置Cookie等。Response对象的属性Buffer:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送。Cookies:获取响应Cookie集合。Expires:获取或设置在浏览器上缓存的页过期之前的分钟数。IsClientC
本文标题:09第6章 构建网站
链接地址:https://www.777doc.com/doc-3099329 .html