Java 单线程是否保证执行Servlet及其过滤器?
我已经知道大多数实现都使用单线程,但是规范中是否有暗示单线程的内容?我记得读过关于使用JVM集群的分布式应用服务器的文章。有这样的实现吗?或者有任何这样的实现可能吗?规范对这种分布式实现意味着什么,这种实现能保证单线程吗?相关的servlet规范3.0片段: 6.2.3过滤环境 过滤器和过滤器链末端的目标servlet或资源必须在同一调用线程中执行 还有太多的框架依赖于其中一个过滤器中设置的Java 单线程是否保证执行Servlet及其过滤器?,java,jakarta-ee,tomcat,servlets,servlet-filters,Java,Jakarta Ee,Tomcat,Servlets,Servlet Filters,我已经知道大多数实现都使用单线程,但是规范中是否有暗示单线程的内容?我记得读过关于使用JVM集群的分布式应用服务器的文章。有这样的实现吗?或者有任何这样的实现可能吗?规范对这种分布式实现意味着什么,这种实现能保证单线程吗?相关的servlet规范3.0片段: 6.2.3过滤环境 过滤器和过滤器链末端的目标servlet或资源必须在同一调用线程中执行 还有太多的框架依赖于其中一个过滤器中设置的ThreadLocal。如果不同的线程运行过滤器和其他调用servlet的线程(技术上可能),它们都会被破
ThreadLocal
。如果不同的线程运行过滤器和其他调用servlet的线程(技术上可能),它们都会被破坏
请注意,分发仅适用于单独的请求,即集群中的不同服务器处理不同的请求。我从来没有听说过将单个请求拆分为机器。接下来的问题是:
request.setAttribute(…)
是否值得用于通用编程(而不是JSP),以支持ThreadLocal?(这是假设在每次请求后都正确清理了threadlocals。)threadlocals的类型安全性似乎使它们比类型不安全的请求属性更适合。此外,性能更好,因为您不需要处理字符串键、哈希和映射。