Ajuda com servlet

Galera, eu preciso de uma ajuda com a servlet que está dando erro e não sei como resolver

classes:

package dao;

import java.sql.*;
import java.util.ArrayList;
import model.Hospital;
import dao.ConnectionFactory;

public class HospitalDAO {

private Connection conBanco;
private PreparedStatement psComando;
private ResultSet rsRegistros;

public void configurarConexao(Connection conBanco) {
	this.conBanco = conBanco;
}




public int criar(Hospital hospital) {
	String sqlInsert = "INSERT INTO hospital(nome_hospital, senha_acesso, id_medico, cnpj, endereco, telefone, email_hospital, codigo_orgao) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

	try (Connection conn = ConnectionFactory.abrirConexao();
			PreparedStatement stm = conn.prepareStatement(sqlInsert);) {
		stm.setString(1, hospital.getNomeHospital());
		stm.setString(2, hospital.getSenhaAcesso());
		stm.setString(3, hospital.getIdMedico());
		stm.setString(4, hospital.getCNPJ());
		stm.setString(5, hospital.getEndereco());
		stm.setString(6, hospital.getTelefone());
		stm.setString(7, hospital.getEmailHospital());
		stm.setInt(8, hospital.getCodigoOrgao());
		stm.execute();
		String sqlQuery = "SELECT LAST_INSERT_ID()";
		try (PreparedStatement stm2 = conn.prepareStatement(sqlQuery);
				ResultSet rs = stm2.executeQuery();) {
			if (rs.next()) {
				hospital.setIdHospital(rs.getInt(1));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return hospital.getIdHospital();
}




public void atualizar(Hospital hospital) {
	String sqlUpdate = "UPDATE hospital SET nome_hospital=?, senha_acesso=?, id_medico=?, cnpj=?, endereco=?, telefone=?, email_hospital=?, codigo_orgao=? WHERE id_hospital=?";

	try (Connection conn = ConnectionFactory.abrirConexao();
			PreparedStatement stm = conn.prepareStatement(sqlUpdate);) {
		stm.setString(1, hospital.getNomeHospital());
		stm.setString(2, hospital.getSenhaAcesso());
		stm.setString(3, hospital.getIdMedico());
		stm.setString(4, hospital.getCNPJ());	
		stm.setString(5, hospital.getEndereco());
		stm.setString(6, hospital.getTelefone());
		stm.setString(7, hospital.getEmailHospital());
		stm.setInt(8, hospital.getCodigoOrgao());
		stm.execute();
	} catch (Exception e) {
		e.printStackTrace();
	}
}



public void excluir(int id_hospital) {
	String sqlDelete = "DELETE FROM hospital WHERE id = ?";
	try (Connection conn = ConnectionFactory.abrirConexao();
			PreparedStatement stm = conn.prepareStatement(sqlDelete);) {
		stm.setInt(1, id_hospital);
		stm.execute();
	} catch (Exception e) {
		e.printStackTrace();
	}
}


public Hospital carregar(int id_hospital) {
	Hospital hospital = new Hospital();
	hospital.setIdHospital(id_hospital);
	String sqlSelect = "SELECT nome_hospital, senha_acesso, id_medico, cnpj, endereco, telefone, email_hospital, codigo_orgao FROM hospital WHERE hospital.id_hospital = ?";

	try (Connection conn = ConnectionFactory.abrirConexao();
			PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
		stm.setInt(1, hospital.getIdHospital());
		try (ResultSet rs = stm.executeQuery();) {
			if (rs.next()) {
				hospital.setNomeHospital(rs.getString("nome_hospital"));
				hospital.setSenhaAcesso(rs.getString("senha_acesso"));
				hospital.setIdMedico(rs.getString("id_medico"));
				hospital.setCNPJ(rs.getString("cnpj"));
				hospital.setEndereco(rs.getString("endereço"));
				hospital.setTelefone(rs.getString("telefone"));
				hospital.setEmailHospital(rs.getString("email_hospital"));
				hospital.setCodigoOrgao(rs.getInt("codigo_orgao"));

			} else {
				hospital.setIdHospital(-1);
				hospital.setNomeHospital(null);
				hospital.setSenhaAcesso(null);
				hospital.setIdMedico(null);
				hospital.setCNPJ(null);
				hospital.setEndereco(null);
				hospital.setTelefone(null);	
				hospital.setEmailHospital(null);
				hospital.setCodigoOrgao(-1);
			
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	} catch (SQLException e1) {
		System.out.print(e1.getStackTrace());
	}
	return hospital;
}

}

package dao;
import java.sql.*;

public class ConnectionFactory {

Connection conBanco;

static {
	try {
		Class.forName("com.mysql.cj.jdbc.Driver");
	
	
	} catch (ClassNotFoundException e) {
		throw new RuntimeException(e);
	}
}

public static Connection abrirConexao() throws SQLException {
	return DriverManager
			.getConnection("jdbc:mysql://localhost:3306/clinica_medica?useTimezone=true&serverTimezone=America/Sao_Paulo&user=root&password=aqui eu apaguei pra postar");





}
	


public void fecharConexao() {
	
	try {
	 conBanco.close();
		
	}catch(SQLException erro) {
		
		erro.printStackTrace();
		
	}
	
	
}


public Connection obterConexao() {
	return conBanco;
}

}

package controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import model.Hospital;
import dao.ConnectionFactory;
import dao.HospitalDAO;

@WebServlet("/CadastrarHospital.do")
public class InserirRegistro extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
{
req.getRequestDispatcher("cadastro.html").forward(req, resp); 
}
	


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	
	String stmIdHospital, stmNomeHospital, stmSenhaAcesso, stmCNPJ, stmEndereco, stmTelefone, 
	stmEmailHospital;
	
	PrintWriter out;
	
	stmIdHospital = request.getParameter("txtHospital");
	stmSenhaAcesso = request.getParameter("txtSenhaAcesso");
	
	if(request.getParameter("NomeHospital") != null)
		stmNomeHospital = "S";
	else
		stmNomeHospital = "N";
	
	
	
	if(request.getParameter("CNPJ") != null)
		stmCNPJ = "S";
	else
		stmCNPJ = "N";
	
	
	if(request.getParameter("Endereco") != null)
		stmEndereco = "S";
	else
		stmEndereco = "N";
	
	
	if(request.getParameter("Telefone") != null)
		stmTelefone = "S";
	else
		stmTelefone = "N";
	
	if(request.getParameter("EmailHospital") != null)
		stmEmailHospital = "S";
	else
		stmEmailHospital = "N";
	
	response.setContentType("text/html;charset=UTF-8");
	out = response.getWriter();
	
	
	
	out.println("<!DOCTYPE html>");
	out.println("<html>");
	out.println("<head>");
	out.println("<link rel='stylesheet' type='text/css' href='menu.css'>");
	
	
	
	
	
	
	
	try {
		ConnectionFactory conn = new ConnectionFactory();
	
		HospitalDAO hospital = new HospitalDAO ();
		
		
		Hospital hospitais = new Hospital(1,
				stmIdHospital, 
				stmNomeHospital,
				stmSenhaAcesso, 
				stmCNPJ,
				stmEndereco,
				stmTelefone, 
				stmEmailHospital, 1);
		
		
		if(conBanco.abrirConexao()) { (AQUI ESTÁ O ERRO)
			hospital.configurarConexao(conn.obterConexao());
			
			if(hospital.criar(Hospital)) { (AQUI ESTÁ O ERRO)
				out.println("<h2>Hospital cadastrado com sucesso!!!</h2>");
				out.println("<br><br><br><br>");
				out.println("<a href='index.html'>Voltar ao menu inicial</a>");	
			}
		
			else
				out.println("<h2>Falha ao cadastrar hospital :( </h2>");
			    out.println("<a href='index.html'>Voltar ao menu inicial</a>");	

			          conn.fecharConexao();
		
		}
	
	
		else
		out.println("<h2>Falha ao se conectar com o banco de dados</h2>");
		out.println("<a href='index.html'>Voltar ao menu inicial</a>");	

	
	}catch(Exception erro) {
		erro.printStackTrace();
		out.println("<h2>Erro do sistema: processo de cadastro de usuário!</h2>");
		out.println("<a href='index.html'>Voltar ao menu inicial</a>");	

	}

	out.println("</body>");
	out.println("</html>");
}

}

e cade o erro?

ja era mano, ja resolvi