Сервлет является частью веб-приложения, и это веб-приложение развернуто в контейнере Java EE (Tomcat, WebLogic и т. Д.).
Стандартный способ установить соединение с базой данных - использовать JNDI для получения экземпляра DataSource и запросить соединение с этим DataSource. Источник данных в большинстве случаев будет объединять соединения с базой данных, чтобы избежать создания и закрытия слишком большого числа соединений, и, следовательно, будет намного быстрее:
Context initCtx = new InitialContext();
DataSource dataSource = (DataSource) initCtx.lookup("java:comp/env/jdbc/MyDataSource");
Connection c = dataSource.getConnection();
try {
// ...
}
finally {
c.close(); // makes the connection available for a new thread
}
Источник данных должен быть объявлен в файле web.xml:
<resource-ref>
<description>Datasource example</description>
<res-ref-name>jdbc/MyDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Он должен быть определен (с его URL, количеством соединений, пользователем, паролем, настройками и т. Д.) Внутри контейнера Java EE. Вот где это зависит от вашего контейнера.
Прочитайте следующие объяснения для Tomcat: http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html