QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

了解 Seam 的嵌套对话和超时

  • 2008-01-17
  • 本文字数:812 字

    阅读完需:约 3 分钟

对 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 企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

2008-01-17 21:481048
用户头像

发布了 151 篇内容, 共 64.1 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

Docker层和虚悬镜像(dangling image)介绍

琦彦

Docker 10月月更

Python应用之拉力赛求最短时间

芯动大师

10月月更 Python语法应用 函数构建

ESP32-C3 学习测试 蓝牙 篇(七、GATT 数据通信 — 发送自定义数据)

矜辰所致

蓝牙 ESP32-C3 10月月更

开发者有话说|以码为梦,心向远方,路在脚下

乌龟哥哥

个人成长 10月月更

JVM——垃圾回收算法

琦彦

Java JVM 垃圾回收 10月月更

2022 Kubernetes 批处理和HPC发展一览

琦彦

HPC 批处理 KubeCON 10月月更

基于BuildKit优化Dockerfile的构建

琦彦

Dockerfile 10月月更

Docker可视化工具Portainer的安装和使用

琦彦

Docker Portainer 10月月更 可视化管理工具

架构师的十八般武艺:领域建模

agnostic

领域建模

第九期 - 模块二

wuli洋

docker-maven-plugin:自动构建Docker镜像,并推送到Docker Registry或阿里云

琦彦

Docker maven 10月月更 docker-maven-plugin

2022-10-05:在一个 n x n 的整数矩阵 grid 中, 每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度。 当开始下雨时,在时间为 t 时,水池中的水位为 t 。

福大大架构师每日一题

算法 rust 福大大

利用Vue自定义指令让你的开发变得更优雅

茶无味的一天

Vue 前端 vue指令

Qt|控件的事件过滤使用与总结

中国好公民st

c++ qt 10月月更

构建Java镜像的10个最佳实践

琦彦

Java应用 Docker 镜像 10月月更

Python应用之寻求两个数对之间的最大乘积

芯动大师

Python语法 10月月更 split函数

【愚公系列】2022年10月 Go教学课程 019-循环结构之for

愚公搬代码

10月月更

爬虫练习题(一)

张立梵

Python. 10月月更 爬虫案例

vue快速入门---高速版

楠羽

笔记 VUE 3.0 源码 10月月更

什么是光网络,几张图就可以很好的解释!

wljslmz

光纤 10月月更 光网络 通信网络

一文了解 CPython 中的垃圾收集器

宇宙之一粟

Python 垃圾回收算法 垃圾收集器 10月月更

JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

胖虎不秃头

前端 js 10月月更

JavaScript——JS事件

胖虎不秃头

前端 js 10月月更

《Rust for Rustaceans》读书笔记2

袁世超

rust

陈宗绵|关于研发效能的理想与现实

laofo

DevOps cicd 研发效能 持续集成 持续交付

作为Android Coder,你了解注解吗?

子不语Any

后端 java; 10月月更

架构实战营模块 2 作业

陌生流云

架构实战营

JavaScript——数据类型

胖虎不秃头

前端 js 10月月更

如何以非root用户运行Docker容器

琦彦

Docker 10月月更 root用户

Python应用之丑数的判断

芯动大师

Python 10月月更 丑数

【C语言难点突破】指针和数组名的爱恨情仇

Geek_65222d

10月月更

了解Seam的嵌套对话和超时_Java_Bryan Clauser_InfoQ精选文章