在设计数据库的连接是用到两种方式,一种代码如下public class DBConnection {
Connection conn;
private ThreadLocal<Connection> connLocal = new ThreadLocal<Connection>(); public Connection getDBConnection() throws SQLException, IOException {...}
另外一种方式是private static DBOPool instance=null;
public static synchronized Connection getInstance(){
if(instance==null)
instance=new DBOPool();
return instance.getConnection();

}
请问这两种方式有什么不同,是不是都能够实现线程的安全,那种模式好些?或者各有什么优缺点,在什么情况下用那种方式?
在就是关于数据库中过滤器的如下面的代码public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
try {
arg2.doFilter(arg0, arg1);
} finally {

new DBConnection().close();
} }
这个过滤器是实现对数据库关闭的,这一句arg2.doFilter(arg0, arg1);//该过滤器的第三个参数为什么有调用了自己的doFilter()方法??!!
高手给讲讲过滤器是怎么个使用情况!!!