为什么SingleThreadModel不同步属性?

时间:2009-08-08 22:08:26

标签: java servlets

我对以下段落感到有点困惑:

“实现SingleThreadModel的效果与同步服务方法几乎相同。两者都可以在不保护会话和上下文状态的情况下使Web应用程序瘫痪。”

由于STM同步服务方法,因此它也不会明显地同步来自多个线程的会话和上下文属性的状态。那么为什么它不会帮助在servlet类中实现STM接口呢?

2 个答案:

答案 0 :(得分:2)

您仍然可以让其他线程从另一个servlet或页面访问和修改会话和/或上下文。特定的STM-servlet是安全的,但很可能你的Web应用程序中只有这个servlet。

答案 1 :(得分:0)

您的STM servlet的任何属性都必须在service方法的开头设置,并且在整个请求期间不会更改它们。

但是,无法保证来自同一用户的下一个请求中的属性相同。

这就是“没有保护会话和上下文状态”的含义。