Dreamweaver 中的动态内容源和记录集

优质
小牛编辑
129浏览
2023-12-01

注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。

关于动态内容源

动态内容源 是一个可从中检索并显示在网页中使用的动态内容的信息存储区。动态内容源不仅包括存储在数据库中的信息,还包括通过 HTML 表单提交的值、服务器对象中包含的值以及其它内容源。

利用 Dreamweaver,您可轻松地连接到数据库并创建可从中提取动态内容的记录集。记录集 是数据库查询的结果。它提取请求的特定信息,并允许在指定页面内显示该信息。根据包含在数据库中的信息和要显示的内容来定义记录集。

不同的技术供应商可能使用不同的术语来表示记录集。在 ASP 和 ColdFusion 中,记录集被定义为查询。如果您使用其它源的数据(如用户输入或服务器变量),则在 Dreamweaver 中定义的数据源的名称与数据源本身的名称是相同的。

动态网站要求有一个可从中检索和显示动态内容的数据源。利用 Dreamweaver,您可使用数据库、请求变量、URL 变量、服务器变量、表单变量、预存过程和其它动态内容源。根据数据源的不同,您可检索新内容以满足某个请求,也可修改页面以满足用户需要。

您在 Dreamweaver 中定义的任何内容源将添加到“绑定”面板的内容源列表中。随后您可以将内容源插入当前选定的页面。

关于记录集

网页不能直接访问数据库中存储的数据。而是需要与记录集进行交互。记录集是通过数据库查询从数据库中提取的信息(记录)的子集。查询是一种专门用于从数据库中查找和提取特定信息的搜索语句。

将数据库用作动态网页的内容源时,必须首先创建一个要在其中存储检索数据的记录集。记录集在存储内容的数据库和生成页面的应用程序服务器之间起一种桥梁作用。记录集临时存储在应用程序服务器的内存中以实现更快的数据检索。当服务器不再需要记录集时,就会将其丢弃。

查询可以生成只包括某些列、只包括某些记录,或者既包括列也包括记录的记录集。记录集也可以包括数据库表中所有的记录和列。但由于应用程序很少要用到数据库中的每个数据片段,所以应该努力使记录集尽可能的小。由于 Web 服务器会将记录集临时放在内存中,所以使用较小的记录集将占用较少内存,并可以潜在地改善服务器的性能。

数据库查询是用结构化查询语言(SQL,读作“sequel”)编写的。而 SQL 是一种简单的、可用来在数据库中检索、添加和删除数据的语言。使用 Dreamweaver 附带的 SQL 生成器,您可以在无需了解 SQL 的情况下创建简单查询。但是,如果您要创建复杂的 SQL 查询,则需要对此语言有基本了解,这样才能创建更高级的查询以及更加灵活地设计动态页面。

定义用于 Dreamweaver 的记录集之前,必须先创建数据库连接,并在数据库中输入数据(如果数据库中还没有数据的话)。如果尚未定义站点的数据库连接,请参考数据库连接一章中有关您正在针对其进行开发的服务器技术的内容,并按照创建数据库连接的说明进行操作。

关于 URL 参数和表单参数

URL 参数存储用户输入的检索信息。若要定义 URL 参数,请创建使用 GET 方法提交数据的表单或超文本链接。信息附加到所请求页面的 URL 后面并传送到服务器。使用 URL 变量时,查询字符串包含一个或多个与表单域相关联的名称/值对。这些名称/值对附加在 URL 后面。

表单参数存储包含在网页的 HTTP 请求中的检索信息。如果创建使用 POST 方法的表单,则通过该表单提交的数据将传递到服务器。开始之前,请确保将表单参数传递到服务器。

关于会话变量

使用会话变量可以存储和显示在用户访问(或会话)期间保持的信息。服务器为每个用户创建不同的阶段对象并保持一段固定时间,或直至该对象被明确终止。

因为会话变量在整个用户会话期间持续,并且当用户从 Web 站点内的一个页面移到另一页面时仍持续存在,所以这些变量非常适于存储用户首选参数。会话变量还可用于在页面的 HTML 代码中插入值,给本地变量赋值或提供计算条件表达式所需的值。

定义页面的会话变量之前,必须先在源代码中创建它们。在 Web 应用程序的源代码中创建会话变量后,即可使用 Dreamweaver 检索变量值并将其用于网页中。

会话变量的工作方式

会话变量存储信息(通常是用户提交的表单或 URL 参数),并使该信息在用户访问的持续时间中对 Web 应用程序的所有页都可用。例如,当用户登录到一个户可以访问电子邮件、股票报价、天气预报和每日新闻的 Web 门户之后,Web 应用程序会将登录信息存储在一个会话变量中,该变量用于在该站点中所有的页面中标识该用户。这样,当用户浏览整个站点时,他们可以只看到他们已经选中的内容类型。会话变量还可以提供一种安全机制,如果用户帐户在一段时间内保持不活动,安全机制终止该用户的会话。如果用户忘记从 Web 站点注销,这种机制还会释放服务器内存和处理资源。

会话变量存储着用户的会话生命周期的信息。用户打开应用程序中的某一页时,会话开始;用户一段时间内不再打开该应用程序中的其它页时,或者用户明确地终止会话时(通常是单击“注销”链接),会话即告结束。在会话存在期间,会话特定于单个用户,每个用户都有单独的会话。

会话变量用于存储 Web 应用程序中每页都能访问的信息。信息可以多种多样,如用户名、首选字体大小,或者是指示用户是否成功登录的标记等。会话变量的另一个常见用途是保存连续分数,例如在网上测验中到目前为止用户答对的题数,或者到目前为止用户从网上目录中选择的产品。

会话变量只有在用户的浏览器配置成接受 Cookie 后才起作用。当首次初始化会话时,服务器创建一个唯一标识该用户的会话 ID 号,然后将包含该 ID 号的 Cookie 发送到用户的浏览器。当用户请求服务器上的另一页时,服务器会读取浏览器中的 Cookie 以识别该用户并检索存储在服务器内存中的该用户的会话变量。

在会话变量中收集、存储和检索信息

创建会话变量前,必须先获得要存储的信息,然后才能将其发送到服务器进行存储。您可以使用 HTML 表单或包含 URL 参数的超文本链接来收集信息并将其发送给服务器。信息的获取来源还包括:存储在用户计算机上的 Cookie、用户浏览器发送的带有页面请求的 HTTP 标头,或者数据库。

在会话变量中存储 URL 参数的一个典型示例是产品目录,它使用通过链接创建的硬编码 URL 参数将产品信息发送回服务器以存储在一个会话变量中。当用户单击“Add to shopping cart”链接时,产品 ID 将存储在会话变量中,而用户可以继续采购。当用户继续浏览到付款页时,即可检索出存储在会话变量中的产品 ID。

基于表单的问卷调查是在会话变量中存储表单参数的一个典型页面示例。表单将选定信息发送回服务器,服务器中的应用程序页将记录调查分数并将响应存储于一个要传递给应用程序的会话变量中,该应用程序可以汇总从调查人群中收集到的响应。也可将这些信息存储于数据库中供以后使用。

信息发送给服务器后,通过向由 URL 或表单参数指定的页中添加适合于服务器模型的代码,即可将信息存储在会话变量中。请参考目标 页,该页既可在 HTML 表单的 action 属性中指定,也可在起始页上超文本链接的 href 属性中指定。

将值存储在会话变量中后,可使用 Dreamweaver 从会话变量中检索该值并用在 Web 应用程序中。在 Dreamweaver 中定义了会话变量后,可以将其值插入到某个页面中。

每种 HTML 语法如下所示:

<form action="destination.html" method="get" name="myform"> </form> <param name="href"value="destination.html">

所用的服务器技术和用于获取信息的方法共同确定了使用什么代码将信息存储在会话变量中。每种服务器技术的基础语法如下所示:

ColdFusion

<CFSET session.variable_name = value>

ASP

<% Session("variable_name") = value %>

value 表达式通常是如 Request.Form(“lastname”) 之类的服务器表达式。例如,如果使用名为 product 的 URL 参数(或包含 GET 方法并和文本域名为 product 的 HTML 表单)收集信息,则下列语句将信息存储在一个名为 prodID 的会话变量中:

ColdFusion

<CFSET session.prodID = url.product>

ASP

<% Session("prodID") = Request.QueryString("product") %>

如果使用包含 post 方法和名为 txtProduct 的文本域的 HTML 表单来收集信息,则下列语句会将信息存储在会话变量中:

ColdFusion

<CFSET session.prodID = form.txtProduct>

ASP

<% Session("prodID") = Request.Form("txtProduct") %>

存储在会话变量中的信息的示例

假定您正在处理一个拥有大量老年访问者的站点。在 Dreamweaver 中,向欢迎屏幕中添加了两个链接,使用户可以对该站点的文本大小进行自定义。如果需要较大的、易读的文本,用户可以单击一个链接;如果需要常规大小的文本,用户可以单击另一个链接。

存储在会话变量中的信息

每个链接都有一个名为 fontsize 的 URL 参数,它可以将用户的文本首选参数提交给服务器,如下面的 Adobe ColdFusion® 示例所示:

<a href="resort.cfm?fontsize=large">Larger Text</a><br> <a href="resort.cfm?fontsize=small">Normal Text</a>

将用户的文本首选参数存储在会话变量中,并用其设置用户请求的每一页上的字体大小。

在目标页面的顶部附近,输入以下代码以创建名为 font_pref 的会话来存储用户的字体大小首选参数。

ColdFusion

<CFSET session.font_pref = url.fontsize>

ASP

<% Session("font_pref") = Request.QueryString("fontsize") %>

当用户单击超文本链接时,该页将用 URL 参数把用户的文本首选参数发送给目标页。 目标页中的代码将该 URL 参数存储在 font_pref 会话变量中。在该用户会话的持续时间内,应用程序中的所有页都将检索该值,并显示选定的字体大小。

ASP 和 ColdFusion 应用程序变量

在 ASP 和 ColdFusion 中,可以使用应用程序变量来存储和显示某些信息,这些信息在应用程序的生存期内被保持并且在用户改变时仍持续存在。应用程序的生存期是指从第一个用户在该应用程序中请求页面到 Web 服务器停止工作之间的这段时间。(应用程序被定义为一个虚拟目录及其子目录中的所有文件)。

因为应用程序变量在应用程序的整个生存期内存在,并且在用户改变时仍持续存在,所以它们非常适合于存储所有用户都需要的信息,如当前时间和日期。应用程序变量的值在应用程序代码中定义。

ASP 服务器变量

可以将以下 ASP 服务器变量定义为动态内容源:Request.Cookie、Request.QueryString、Request.Form、Request.ServerVariables 和 Request.ClientCertificates。

ColdFusion 服务器变量

可以定义下列 ColdFusion 服务器变量:

客户端变量

使数据与特定的客户端相关联。当用户在应用程序中从一个页面移动到另一个页面或从一个会话移动到另一个会话时,客户端变量将保持应用程序的状态。“保持状态”指的是将信息从一个页面(或会话)保留到下一个页面(或会话),以便应用程序“记住”用户和用户以前的选择和首选参数。

Cookie 变量

访问由浏览器传递给服务器的 Cookie。

CGI 变量

提供有关运行 ColdFusion 的服务器的信息、请求页面的浏览器的信息以及其它有关处理环境的信息。

服务器变量

可以由服务器上的所有客户端和应用程序访问。它们将一直持续到服务器被停止。

局部变量

此类变量是在 ColdFusion 页面中用 CFSET 标签或 CFPARAM 标签创建的。

更多此类内容

  • 不通过编写 SQL 来定义记录集
  • URL 参数
  • 定义表单参数
  • 向页面添加动态内容
  • 定义会话变量
  • 定义服务器变量