我的 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();
}
这是正确的方法吗?