2012-10-18 70 views
1

在我的大多数(全部)servlets中,init方法是类似的。晴初始化DataSourceJava Servlet扩展另一个Servlet

我想创建一个BaseServlet具有保护DataSource和实施init方法和所有其他的Servlet扩展这个BaseServlet的。

任何我应该警惕的问题?

+0

您可以考虑宣布你的资源需求在部署描述符,而不是创建基本的servlet。我认为这将是一个更清洁的方法 – Sujay

回答

1

在目前的方案:

  1. 每个Servlet的扩展BaseServlet会创建自己的数据源作为init()方法将被调用多次。
  2. 我认为这不是你想要完成的,你正在寻找一个单独的数据源来跨越所有的Servlet。

上述假设是真的,我会建议以下

  1. 包装你的数据源中的一个单独的类。这将确保数据源只初始化一次。使用eager initialization,以确保数据源是在类负载本身
  2. 使用这个类来获得你的servlet类的数据源/连接initalized。
1

如果你只需要初始化数据库相关的东西,你可以把写入ServletContext,我没有那么多的类继承的乐趣。

时下,似乎我们不只是从servlet的开始,为什么不选择一个框架?

相关问题