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