private List<Pregunta> corregirExamen(HttpServletRequest request, HttpServletResponse response) {

        List<Pregunta> questList = new ArrayList<Pregunta>();

        String listId = request.getParameter("listId");
        String[] ids = listId.split(",");

        for (int i = 0; i < ids.length; i++) {
            int id = Integer.parseInt(ids[i]);
            Pregunta p = PreguntaDAO.buscaID(id);
            questList.add(p);
        }

        List<Integer> respuestas = respuestasExamen(request, response, questList);
        int buenas = 0, sinContestar = 0, fallidas = 0;
        for (int i = 0; i < respuestas.size(); i++) {
            if (questList.get(i).getRespuestaCorrecta() == respuestas.get(i)) {
                buenas++;
            } else if (respuestas.get(i) == -1) {
                sinContestar++;
            } else {
                fallidas++;
            }
        }

        request.setAttribute("fallidas", fallidas);
        request.setAttribute("buenas", buenas);
        request.setAttribute("sin", sinContestar);
        request.setAttribute("corregir", true);

        HttpSession session = request.getSession();
        Usuario user = (Usuario) session.getAttribute("currentUser");

        ResultadoExamen resultado = new ResultadoExamen(buenas, fallidas, sinContestar, user.getDni());
        ResultadoExamenDAO.insertaResultadoExamen(resultado);

        for (int i = 0; i < respuestas.size(); i++) {
            ResultadoPregunta r = new ResultadoPregunta();
            r.setExamen(ResultadoExamenDAO.ultimo());
            r.setPregunta(questList.get(i).getId());
            if (questList.get(i).getRespuestaCorrecta() == respuestas.get(i)) {
                r.setResultado(0);
            } else if (respuestas.get(i) == -1) {
                r.setResultado(2);
            } else {
                r.setResultado(1);
            }
            ResultadoPreguntaDAO.insertaResultadoPregunta(r);
        }

        return questList;
    }