Jsp lento

E ai galera, seguinte tenho uma pagina de cadastro em jsp, o problema dela é quando são realizados varios cadastros ela fica lenta, chega ate travar, ja dei uma olhada no pool e as conexões estão fechadas, o que eu devo fazer?

Valeu

Se estas usando hibernate, procure usar esta classe para conexão:

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

public class HibernateUtility {
private static final SessionFactory factory;

private static final ThreadLocal sessionThread = new ThreadLocal();

private static final ThreadLocal transactionThread = new ThreadLocal();
static {
	try {
		factory = new Configuration().configure().buildSessionFactory();
	} catch (RuntimeException e) {
		e.printStackTrace();
		throw e;
	}
}

public static Session getSession() {
	if (sessionThread.get() == null) {
		Session session = factory.openSession();
		sessionThread.set(session);
	}
	return (Session) sessionThread.get();
}

public static void closeSession() {
	Session session = (Session) sessionThread.get();
	if (session != null && session.isOpen()) {
		sessionThread.set(null);
		session.flush();
		session.close();
	}
}

public static void beginTransaction() {
	Transaction transaction = getSession().beginTransaction();
	transactionThread.set(transaction);
}

public static void commitTransaction() {
	Transaction transaction = (Transaction) transactionThread.get();
	if (transaction != null && !transaction.wasCommitted()
			&& !transaction.wasRolledBack()) {
		transaction.commit();
		transactionThread.set(null);
	}
}

public static void rollbackTransaction() {
	Transaction transaction = (Transaction) transactionThread.get();
	if (transaction != null && !transaction.wasCommitted()
			&& !transaction.wasRolledBack()) {
		transaction.rollback();
		transactionThread.set(null);
	}
}

}

como fazer consultas:
public List getAcabamentos(){
List lista = new ArrayList();
Session session = HibernateUtility.getSession();
Query q = session.createQuery(“from Acabamento order by acabamento”);
lista = q.list();
HibernateUtility.closeSession();
return lista;
}

para fazer gravação:
public void salvar(SarWeb sarWeb) {
Session session = HibernateUtility.getSession();
HibernateUtility.beginTransaction();
session.saveOrUpdate(sarWeb);
HibernateUtility.commitTransaction();
HibernateUtility.closeSession();
}

falow

Eu estou usando o visionnaire

mas o código de conexão com o banco está num jsp ou em um servlet?