Мое веб-приложение использует ActiveJDBC. Эта структура ORM требует открывать новое соединение с БД с каждым новым потоком (и, конечно же, закрывать его, когда поток завершается). Мне интересно, лучший ли способ добиться этого — использовать веб-фильтр.
если это так, куда мне звонить Base.open()
? варианты init()
или doFilter()
. Кроме того, если я планирую вызывать Base.close()
в destroy()
, мне нужно знать, что действительно destroy()
всегда вызывается при завершении потока, независимо от того, нормально это или ненормально.
РЕДАКТИРОВАТЬ: после прочтения о фильтрах сервлетов я теперь считаю, что правильной обработкой будет открытие и закрытие соединения в doFilter()
:
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
Base.open();
chain.doFilter(request,wrapper);
Base.close();
}
это правильный путь?