是否保证单个线程执行Servlet及其过滤器?

时间:2012-04-10 20:42:38

标签: java java-ee tomcat servlets servlet-filters

我已经知道大多数实现使用单个线程,但是规范中是否有任何暗示单线程的东西?我记得读过使用JVM集群的分布式应用服务器。有没有这样的实现?或者有任何这样的实现可能吗?规范对这种分布式实现意味着什么,这样的实现是否能保证单线程?

1 个答案:

答案 0 :(得分:10)

相关的servlet规范3.0片段:

  

6.2.3过滤环境

     

过滤器链末尾的过滤器和目标servlet或资源必须在同一个调用线程中执行

还有太多的框架依赖于其中一个过滤器中设置的ThreadLocal。如果不同的线程正在运行过滤器而其他线程正在调用servlet(技术上可行),那么它们都会被破坏。

请注意,分发仅适用于单独的请求,即群集中的不同服务器处理不同的请求。我从未听说过将单个请求拆分为机器。