/** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    String tematica = request.getParameter("filtroTematica");
    String precioStr = request.getParameter("filtroPrecio");
    String dificultadStr = request.getParameter("filtroDificultad");

    int dificultad = Integer.parseInt(dificultadStr);
    int precio = Integer.parseInt(precioStr);

    Collection<Curso> cursosRet = null;

    String pagina = "";
    pagina = ENTRADA_JSP;

    if (!tematica.equals("") && precio == 0 && dificultad == -1) {

      try {
        cursosRet = curDao.recuperarCursosPorTematica(tematica);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (tematica.equals("") && precio != 0 && dificultad == -1) {

      try {
        cursosRet = curDao.recuperarCursosPorPrecio(precio);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (tematica.equals("") && precio == 0 && dificultad != -1) {

      try {
        cursosRet = curDao.recuperarCursosPorDificultad(dificultad);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (!tematica.equals("") && precio != 0 && dificultad == -1) {

      try {
        cursosRet = curDao.recuperarCursosPorPrecioYTematica(precio, tematica);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (!tematica.equals("") && precio == 0 && dificultad != -1) {

      try {
        cursosRet = curDao.recuperarCursosPorDificultadYTematica(dificultad, tematica);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (tematica.equals("") && precio != 0 && dificultad != -1) {

      try {
        cursosRet = curDao.recuperarCursosPorPrecioYDificultad(precio, dificultad);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (!tematica.equals("") && precio != 0 && dificultad != -1) {

      try {
        cursosRet =
            curDao.recuperarCursosPorPrecioYDificultadYTematica(dificultad, tematica, precio);
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if (tematica.equals("") && precio == 0 && dificultad == -1) {

      try {
        cursosRet = curDao.buscarTodosLosCursos();
        pagina = BUSCAR_CURSOS_JSP;
        request.setAttribute("cursos", cursosRet);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    config2.getServletContext().getRequestDispatcher(pagina).forward(request, response);
  }