【发布时间】:2012-04-11 19:30:37
【问题描述】:
Servlet 3.0 异步 API 的内部指定 Servlet 由多路复用器线程池处理。 getCurrentSession 的行为是什么?它会保持会话打开,直到多路复用器线程由于空闲而被破坏?
【问题讨论】:
Servlet 3.0 异步 API 的内部指定 Servlet 由多路复用器线程池处理。 getCurrentSession 的行为是什么?它会保持会话打开,直到多路复用器线程由于空闲而被破坏?
【问题讨论】:
Servlet 请求一直由线程池处理,因此 Servlet 3.0 在这里没有引入任何新内容。从getCurrentSession() 获得的线程绑定Sessions 在事务提交后(默认情况下)会被关闭,因此只要正确实现事务管理,线程池应该不会有任何问题。
Servlet 3.0 的新功能是异步请求处理的不同阶段可以由不同的线程处理,因此您不能在这些阶段使用线程绑定Session。但是,您仍然可以在单个处理阶段中使用线程绑定的Session。
异步处理也给 Open Session in View 模式带来了问题。
但是,只要您不使用异步 API,所有这些问题都无关紧要。
【讨论】: