我的 Web 应用程序使用 ActiveJDBC。这个 ORM 框架需要为每个新线程打开新的数据库连接(当然,当线程完成时关闭它)。我想知道实现这一目标的最佳方法是否是使用 Web 过滤器。
如果是这种情况,我在哪里打电话Base.open()
?选项是init()
或doFilter()
。另外,如果我打算调用Base.close()
,destroy()
我需要知道确实destroy()
总是在线程终止时调用,无论是正常还是异常。
编辑:在阅读了有关 servlet 过滤器的信息后,我现在相信正确的处理是在以下位置打开和关闭连接doFilter()
:
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
Base.open();
chain.doFilter(request,wrapper);
Base.close();
}
这是正确的方法吗?