WebObjects/Web 应用程序/开发/组件操作
外观
组件操作请求模型是 WebObjects 中处理用户请求的默认方法。它基于交互式页面对象(组件)的概念。
页面创建一些 HTML 并为用户绘制屏幕。组件对象作为用户会话的一部分存储,其中包含其所有状态。当用户在页面上单击链接或提交表单时,URL 的构造方式使得服务器可以确定最初用于创建页面的组件对象,并重新使用此对象来处理请求。
因此,您可以很好地忘记您正在使用网页,并且用户在每次请求中提供的唯一信息是 URL、表单提交、cookie 等。您可以创建处理许多请求的交互式页面,只需根据每个请求更改其内部状态,就像您正在编写要在本地使用的非 Web 应用程序一样。
我不熟悉 JSP,但我被熟悉它的人告知,这使得 WebObjects 中的高度动态数据库编辑页面(例如同时编辑多个链接的表)比 JSP 更容易。我可以确认这在 WebObjects 中确实很简单,但我自己并不知道为什么在 JSP 模型中更难。
请注意,组件操作请求模型有一些缺点。每个要处理的 URL 都必须在内存中找到匹配的组件对象。因此,一旦会话超时,URL 变得几乎不可理解,并且难以正确处理这种情况。一种选择是在 URL 上添加额外的值作为查询字符串 - 这不会破坏标准请求处理,但可以用来提供正确的信息以在会话消失时恢复。此外,会话不能记住无限的组件对象,除非您想将内存投入到这个问题中,因此默认情况下只存储 30 个。这意味着用户可能会回溯太远并造成问题,尤其是当您使用多个框架或窗口时。
对于不需要高度交互式页面的情况,您可能更喜欢 直接操作,它没有这些缺点,但提供的帮助较少。