Sessão Servelt

Sou novo no GUJ.
Caso esteja fazendo algo errado, me desculpe.

Estou com problema para criar sessão Login, tenho Dois tipos de menu principal (Usuario e Administrator). Alguém poderia verificar meu código, consigo efetuar login normalmente com usuário comum, já com usuário administrador não
consigo criar sessão par o menu administrator;

DAO

public Login autenticaUsuario(Login login) throws ClassNotFoundException {
Login usuarioAutenticado = null;
Connection conexao = null;
PreparedStatement pstmt = null;
ResultSet rsUsuario = null;
try {
conexao = new FabricaConexao().getConnection();
pstmt = conexao.prepareStatement(AUTENTICA_USUARIO);
pstmt.setString(1, login.getLogin());
pstmt.setString(2, login.getSenha());
rsUsuario = pstmt.executeQuery();
if (rsUsuario.next()) {
usuarioAutenticado = new Login();
usuarioAutenticado.setId(rsUsuario.getInt(“id”));
usuarioAutenticado.setLogin(rsUsuario.getString(“login”));
usuarioAutenticado.setSenha(rsUsuario.getString(“senha”));
usuarioAutenticado.setPerfil(PerfilDeAcesso.valueOf(rsUsuario.getString(“perfil”)));
}
} catch (SQLException sqlErro) {
throw new RuntimeException(sqlErro);
} finally {
if (conexao != null) {
try {
conexao.close();
} catch (SQLException ex) {
Logger.getLogger(LoginDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return usuarioAutenticado;
}

Servelt

@WebServlet(name = “ControleAcesso”, urlPatterns = {"/ControleAcesso"})
public class ControleAcesso extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        String acao = request.getParameter("acao");
        if (acao.equals("Entrar")) {
            Login login = new Login();
            login.setLogin(request.getParameter("txtLogin"));
            login.setSenha(request.getParameter("txtSenha"));
          
            LoginDAO usuarioDAO = new LoginDAO();
            
            Login usuarioAutenticado = usuarioDAO.autenticaUsuario(login);
            //se o usuario existe no banco de dados
            if (usuarioAutenticado != null) {
            //cria uma sessao para o usuario
                HttpSession sessaoUsuario = request.getSession();
                sessaoUsuario.setAttribute("usuarioAutenticado", usuarioAutenticado);
            //redireciona para a pagina princiapal
                response.sendRedirect("principal.jsp");
            } else {
                RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
                request.setAttribute("msg", "Login ou Senha Incorreto!");
                rd.forward(request, response);
            }
        } else {
            if (acao.equals("Sair")) {
                HttpSession sessaoUsuario = request.getSession();
                sessaoUsuario.removeAttribute("usuarioAutenticado");
                response.sendRedirect("index.jsp");
            }
        }
    } catch (Exception erro) {
        RequestDispatcher rd = request.getRequestDispatcher("/erro.jsp");
        request.setAttribute("erro", erro);
              rd.forward(request, response);
    }
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

}

Alguma mensagem de erro? Exceção?

Boa tarde Luis,

Segue erro.

HTTP Status 500 - Internal Server Error

type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException: Cannot forward after response has been committed
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.

Não estou sabendo fazer o IF para login administrator entrar na pagina menu administrator.

Tem duas coisas, a primeira é: onde está o if para validar o acesso do administrador?
A segunda é o erro apresentado. Você tem alguns try/catch e o último deles só redireciona para a página de erro. Seria interessante olhar o log e ver o que foi gravado, para certificar-se de qual a causa do erro 500.

Obrigado, estou tentando criar validar o acesso do administrador.