BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

了解Seam的嵌套对话和超时

| 作者 Bryan Clauser 关注 0 他的粉丝 ,译者 王丽娟 关注 0 他的粉丝 发布于 2008年1月18日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

对Web应用开发人员来说,状态管理一直是一个挑战。对话应该在应用层而不是请求层来处理交互。Jacob Orshalick以Seam的酒店预订示例应用为例,论述了Seam的对话模型,并解释了如何将嵌套对话运用于该示例。

Seam的对话模型提供了一个简化方法来处理continuations。如果你熟悉continuation server的概念,你就知道它们提供了包括无缝后退按钮处理和自动状态管理在内的功能。一个用户会话有很多continuations,它们是执行过程中简单的状态快照,可在任何时候恢复。如果你对这个概念不熟悉,别担心,Seam使其变得很简单。

这只是模型的一部分,Seam还允许对话的嵌套:

嵌套对话提供了一个状态容器,它堆叠在最早的对话或外部对话的状态容器之上。任何在嵌套对话状态容器中设置的对象,都不影响可从父对话状态容器中访问的对象。这就允许每个嵌套对话能保持其自己独有的状态。

Orshalick从定义嵌套对话到确保它被妥善地清空一路演示下来。他用JBoss Developer Studio来扩展Seam的酒店预订示例应用,生动地完成了嵌套对话的讲解。

Jacob Orshalick不止澄清了嵌套对话,他还讨论了对话超时的话题:

对话超时似乎是一个普遍被误解的Seam概念。在Seam论坛上,我常常看见一些帖子宣称对话超时不起作用。实际上它工作得很正常,只不过你必须去理解它的语义。

Orshalick用与嵌套对话相同的例子说明了,在处理多对话时,只有后台对话会受到对话超时的影响。照这样来说,只有会话本身超时时,前台对话才会超时。

Orshalick最后总结到:

通过其简单的对话模型,Seam提供了一个非常有吸引力的方法来管理状态。过去开发人员艰难处理的复杂问题,包括多窗口操作和后退按钮处理,都能处理得天衣无缝了。
查看英文原文Understanding Seam Nested Conversations and Timeouts
译者简介: 王丽娟(Ivy Wang),一个快乐的程序员,持续从事Java EE中间件和Java EE企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

状态管理是Seam的一个亮点 by blogbin avatar

rt

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT