/** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    if (logger.isDebugEnabled()) {
      logger.debug("doGet(HttpServletRequest, HttpServletResponse) - start");
    }

    response.setHeader("Content-Type", "text/html; charset=UTF-8");
    Params params = Params.of(request);

    PrintWriter out = null;
    try {
      out = response.getWriter();
      _handleRequest(params, request, response, out);
    } catch (IOException e) {
      e.printStackTrace();
      logger.error("doGet() failed.", e);
    } catch (JSONException e) {
      e.printStackTrace();
      logger.error("doGet() failed.", e);
    } catch (Exception e) {
      e.printStackTrace();
      logger.error("doGet() failed.", e);
    } finally {
      if (null != out) {
        try {
          out.close();
        } catch (Exception e) {
          logger.error("doGet() failed.", e);
        }
        out = null;
      }
    }

    if (logger.isDebugEnabled()) {
      logger.debug("doGet(HttpServletRequest, HttpServletResponse) - end");
    }
  }