Попробуйте так. В папку META-INF, что в webapp, добавить context.xml с содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/est"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/est?useEncoding=true&characterEncoding=UTF-8"/>
</Context>
После сделайте класс DaoUtil и напишите туда это(и лучше его доработать, он перегружен всякими if и т.п.):
public class DaoUtil {
public static Connection getConnection(){
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
Context context = new InitialContext();
Context initContext = (Context )context.lookup("java:/comp/env");
DataSource ds = (DataSource) initContext.lookup("jdbc/est");
connection = ds.getConnection();
}catch (SQLException | NamingException ex){
ex.printStackTrace();
}
return connection;
}
public static void close(Statement statement, ResultSet rs,Connection connection){
try {
if (statement != null) {
statement.close();
}
if (rs != null) {
rs.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException ex){
ex.printStackTrace();
}
}
}
Ну и в контроллере уже можно писать так:
Connection connection = DaoUtil.getConnection();
Ну и лучше работу с connection и всякими statement перенести в слой Dao.