WebRAD:构建基于Web的数据库应用程序
发布时间: 2025-08-17 00:51:43 阅读量: 1 订阅数: 5 

# WebRAD:构建基于 Web 的数据库应用程序
## 1. 管理“无状态”条件的秘诀
在 Web 应用程序中,管理“无状态”条件的关键在于让浏览器在每次访问网站时进行自我标识。实现这一标识有多种技术,包括使用 cookie、标识符和身份验证等。通过在服务器上采用这种标识方案,可以在用户会话期间存储临时信息。这样,在处理每次访问时,就能根据需要重建用户的会话环境,从而为最终用户提供一致的体验。
## 2. 在网页间传递“参数”
一个完整的 Web 应用程序由一个或多个不同的网页组成,用户可以查看并与之交互。在 Web Connection 应用程序中,每个网页都是由一个或多个进程类中的不同方法创建的。除了最简单的 Web 应用程序外,通常需要在网页之间传递数据,而不仅仅依赖简单的超链接。以下是一些具体需求的例子:
- 在名为 DisplayCustomer 的页面中,需要查询数据库并显示单个客户的信息,因此需要知道要显示哪个客户。
- 在名为 ReceiveFeedback 的页面中,需要处理网站上的反馈表单,因此需要确定用户在每个表单字段中输入的内容。
- 在名为 FinalCheckout 的页面中,需要处理用户在浏览 Web 商店时的购买行为,因此需要能够汇总用户添加到购物车中的所有商品。
- 在名为 SaveUser 的页面中,需要知道用户是来自 AddNewUser 页面还是 EditExistingUser 页面,以便采取正确的数据库操作。
- 如果网站允许用户设置显示偏好(例如低图形模式、大字体或配色方案选择),则需要在每个页面中能够确定用户的选择,并在整个访问过程中始终遵循这些选择。
### 2.1 传递参数的三种基本技术
有三种特定的技术可用于在不同访问之间传递信息,它们各不相同,对于特定需求,通常只有一种技术是合适的。掌握这三种方法对于成为成功的 Web 应用程序开发者至关重要。这三种基本技术如下:
1. 在 URL 中传递参数
2. 通过 HTML 表单提交变量
3. 存储和检索会话信息
一些 Web 开发者会尝试使用第四种技术,即为每个参数单独使用 cookie 将设置保存到客户端机器上。但这种技术容易受到黑客攻击,并且存在 cookie 大小限制,因此不建议使用。
### 2.2 URL 参数
参数可以通过物理 URL 在网页之间传递。Web Connection 使用 URL 中的前两个位置作为自身的参数,以决定使用哪个类和方法来处理请求。除此之外,应用程序可以自由使用其他合适的参数。
一个没有额外参数的 URL 可能如下所示(为简洁起见,仅显示相对 URL):
```plaintext
wc.dll?CustPages~DisplayCustomer
```
这是一个基本的 Web Connection URL,指示使用 CustPages 程序中的 DisplayCustomer 方法来处理页面。但根据方法的性质,这可能不足以让方法处理页面。例如,在这个例子中,需要知道要显示哪个客户,客户 ID 实际上是该方法的必需参数,但 Web Connection 方法从不带参数调用。
解决方法是将所需信息嵌入到 URL 本身中,以便方法可以使用 Request 对象的 QueryString 方法检索它。URL 参数可以有顺序位置或名称。以下是显示 ID 为 9999 的客户的请求示例:
```plaintext
wc.dll?CustPages~DisplayCustomer~9999
wc.dll?CustPages~DisplayCustomer~&custID=9999
```
虽然 Web Connection 支持使用这两种格式,但前者(顺序位置)明显较差,不应使用。以下是读取请求的客户 ID 的代码示例:
```foxpro
lnId = VAL( Request.QueryString( 3)) && 顺序位置情况
lnId = VAL( Request.QueryString( "custID")) && 名称情况
```
使用参数名称技术的优势很明显:在前者情况下,需要记住每个参数的具体位置编号;而在后者情况下,只需通过参数名称引用即可。当方法需要两个、三个甚至更多参数时,前者需要跟踪参数的顺序,而后者可以按任意顺序使用参数名称将它们组合在一起。
使用 URL 参数的合适时机是在构建页面时可以提前指定所有参数,用户只需点击特定的超链接即可进入下一个页面。例如,在包含所有客户列表的页面中,希望从列表中的每个名称创建一个超链接到相应客户的详细页面。在这种情况下,在用户看到列表之前就知道如何构造每个链接,因为是枚举所有可能的选择,而不是要求用户在表单中输入某种搜索条件。
### 2.3 表单变量
在实际情况中,往往会遇到比上述示
0
0
相关推荐










