/**
   * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
   *
   * @param request servlet request
   * @param response servlet response
   * @throws ServletException if a servlet-specific error occurs
   * @throws IOException if an I/O error occurs
   */
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    if (bo == null) {
      bo = new BlocoBo();
    }

    String nome = request.getParameter("descricao");

    Bloco bloco = new Bloco();
    bloco.setNome(nome);

    Map<String, String> resultado = new HashMap<>();
    try {
      bo.cadastrarBloco(bloco);
      request.getSession().setAttribute("blocos", bo.listarTodos());
      resultado.put("resultado", "Operação realizada com sucesso");

    } catch (IllegalArgumentException e) {
      resultado.put("erro", e.getMessage());
    }

    String json = new Gson().toJson(resultado);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);
  }