【发布时间】:2010-12-30 12:41:01
【问题描述】:
我想在每个请求(通过 ThreadLocal)上将 JPA EntityManager 绑定到当前线程,这可以通过 ServletRequestListener 或 Filter 完成。侦听器看起来更干净,在这种情况下我不需要过滤器的其他可能性。但也许过滤器有一个我错过的优势。
我应该使用 Servlet 过滤器还是 ServletRequestListener 来做到这一点?
【问题讨论】:
-
是否有关于 ServletRequestListener 的线程保证?您确定它是在与请求处理相同的线程上同步调用的吗?
-
Servlet 3.0 规范说:“11.5 侦听器实例和线程 [...] 容器必须维护对每个侦听器实例的引用,直到为 Web 应用程序提供最后一个请求。属性更改为 ServletContext “但这不是您问题的答案...我认为它会在同一个线程中。
标签: java listener servlet-filters