Fechando Conexão JDBC

Boa tarde a todos, tenho uma duvida, gostaria que se possivel os mas avançados aqui me sanasse a mesma.
Tenho uma aplicação onde usando apenas JDBC, e em todos os metodos após realizar a operação desejada eu fecho a conexão com o banco. Mas eu andei fazendo algumas alterações que talvez não seja mas preciso fechar-las. Pois passei a usar Datasource para poder criar a conexão. Será se o tomcat gerencia o fechamento das conexões por conta dele mesmo? Vou colocar aqui um exemplo do DAO.

public class EntidadeDAOImpl implements EntidadeDAO {
	private Connection connection;
	private PreparedStatement pstmt;
	private ResultSet rs;

	public EntidadeDAOImpl() {
		if(this.connection == null) {
			try {
				this.connection = ConnectionFactory.getInstance().getConnection();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	public List<MinhaEntidade> listarTudo(){
		try {
			this.pstmt = this.connection.prepareStatement("SQL");
			this.rs = this.pstmt.executeQuery();
			.....
		} catch (Exception e) {
			throw new Exception("Erro: "+e);
		}finally {
			// Aqui fica a minha dúvida
			ConnectionFactory.closeConnection(this.connection, this.pstmt, this.rs);
		}
		
	}
}

Metodo de Conexão:

	public Connection getConnection() throws Exception {
		try {		
			Context initContext = new InitialContext();
			Context envContext  = (Context)initContext.lookup("java:/comp/env");
			DataSource dataSource = (DataSource)envContext.lookup("jdbc/hsql");
			if (this.connection == null || this.connection.isClosed()) {
				this.connection = dataSource.getConnection();
			}
		} catch (Exception e) {
			throw new Exception(e.getMessage());
		}
		return connection;
	}

Sim, ele gerencia.

não sabia que um servlet container tivesse esse gerenciamento achava que só era possivel em servidores de aplicação j2EE, sabe onde tem documentação disto ?

Você consegue criar através de xmls.
Tem exemplos na net, já a documentação oficial eu nunca vi.

Então posso retirar os fechamentos sem nenhum receio?