WebObjects/Web 应用程序/开发/直接操作
外观
直接操作是可以不使用 WOSession 即可调用的操作方法。与组件操作相反,组件操作需要 WOSession 并且各种表单值绑定为对象,而直接操作更像传统 Web 框架,其中表单值是通过 WORequest 的 formValues 字典和 cookie 访问的。直接操作非常适合构建无状态、高性能的网站,尽管您会失去 WebObjects 在使用组件操作时提供的某些易于开发的功能。
页面仍然以通常的方式生成,但如果您希望页面中生成的链接在点击时使用直接操作,即创建直接操作 URL,则必须进行适当的绑定。
如果需要,直接操作可以与会话一起使用,与会话在其他 Web 技术中的工作方式相同 - 正确的会话对象将从 URL 或 cookie 中的信息自动定位,并且可以在其中获取和更改状态。
除了其他用途,直接操作通常在不需要任何会话的情况下使用(使用更少的资源),或者需要可书签或易于创建的 URL 时使用。直接操作也经常用于为您的应用程序提供多个入口点,每个入口点都有自己的 URL,但随后返回使用普通组件操作的组件。
如果您不需要组件操作的额外便利性,使用直接操作也是一个不错的选择,因为它们没有任何缺点。但是,在不创建 WOSession 的情况下创建完整的 WO 应用程序非常困难,而且大多数情况下,无论如何您都需要它。
David LeBer 有一系列关于使用直接操作的文章
- 使用 WebObjects 直接操作第 1 部分
- 使用 WebObjects 直接操作第 2 部分
- 使用表单中的值调用直接操作
- 使用 WOHyperlink 中的值调用直接操作
- 使用 WORedirect 中的值调用直接操作
此页面用于放置使用直接操作时发现的实用备注和提示。
- 要使用直接操作进行快速浏览,请查看(在 Mac OS X,WO 5.x 上):/Developer/Examples/JavaWebObjects/ThinkMovies
- 在将直接操作与包含 WOText 或 textarea 元素的表单一起使用时,您必须自己删除从客户端发送回来的任何 \r\n(软回车)。在组件操作页面中,WOText 元素会为您处理此问题,但是当您自己从请求的表单值中提取值时,需要自己处理软回车。您应该只将它们转换为 \n。