如何在 CGI 包装器代码文件中管理 Websession



我正在使用webspeed开发一个Web应用程序。我的代码只用cgi包装器编写。目前,我正在努力管理wesession(所有情况)。现在的问题是,当我使用 F5 键刷新页面时,我的 .p 总是创建一个新的会话 ID。如何在 .p 中处理这种情况?当代码编写在.html文件中时,而是当代码完全用 .p 文件编写时,不会出现此问题

谢谢。

您需要一种更好的方法来识别会话。看看这里,看看是否有有用的东西:http://freeframework.sourceforge.net/

OpenEdge世界中的大多数人都编写自己的会话处理(包括我自己),尽管有一些替代方案。

正如 Tim 所提到的,自由框架已经存在了 12 年,但我不知道它是否仍在积极开发中。

eScript 框架是 WebSpeed 的绝佳替代品,允许您拆分业务逻辑和 UI。你会意识到使用 cgi-wrappers 对你的字符串处理来说是一种痛苦(4GL 字符串中 JavaScript 代码的引号和双引号是一场噩梦)。完整框架(我相信有一个使用完整框架的持续许可证)内置了完整的会话处理。

我相信在接下来的12个月内,eScript开发人员将发布一个全新的框架,作为eScript的替代品;有关更多信息,请在Rule Six上注册eScript开发人员的邮件列表(他的名字是Matt Verrinder,我与他没有任何关系)。

我自己使用基本的eScript Web对象。这没有持续的许可(你只需要从Matt那里得到一些前期咨询),并以便宜的价格为您提供业务逻辑/UI拆分的好处。当然,您仍然必须编写自己的会话处理。

对于OpenEdge开发人员来说,一个很好的资源是 www.progrestalk.com:与Stackoverflow相比,您更有可能在那里获得有用的答案。如果您在他们的论坛上进行搜索,您会发现有关会话处理的大量信息。

OpenEdge确实内置了会话处理功能。以下是Progresstalk上一个帖子的摘录:

在信使上,您需要设置 $DLC/properties/ubroker.porperties: useConnID=1 in the Environment 部分 WebSpeed 代理 您需要设置SESSION_PATH。这 应该指向您希望存储会话的目录 变量。如果您已经这样做了,那么您可以使用 setSession("VarName","VarValue") 来设置变量和 getSession("Varname") 来检索值。会话变量是 存储在文件名 ENCODE(SESSION:SERVER-CONNECTION-ID).tmp中。

这种方法有其缺陷,例如:值始终存储为字符 文件的最大大小是 32K(至少以前是这样),等等 上。但是,如果您要做的事情不是太复杂,那么 这是一个很好的起点。人们总是可以通过开始扩展它 实现自己的会话管理器。

希望那里有一些有用的信息,你可以使用!

最新更新