@Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
     throws ServletException, IOException {
   String result = "(no output)";
   String source = req.getParameter("src");
   String status = "normal";
   try {
     if (source != null) result = new ConsoleService().exec(source);
   } catch (Exception ex) {
     log.warn("Script execution error", ex);
     result = ex.getMessage();
     status = "error";
   }
   req.setAttribute("source", source);
   req.setAttribute("output", result);
   req.setAttribute("status", status);
   super.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);
 }
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    String requestURL = req.getRequestURL().toString();
    if (!debug && !requestURL.startsWith(this.baseURL) && !requestURL.contains(".latest.")) {
      resp.sendRedirect(baseURL);
      return;
    }

    PersistenceManager pm = pmf.getPersistenceManager();
    try {
      req.setAttribute("recentScripts", getRecentScripts(pm));
      req.setAttribute("tagCloud", getTagCloud(pm));

      UserService userSvc = UserServiceFactory.getUserService();
      if (userSvc.isUserLoggedIn())
        req.setAttribute("logoutURL", userSvc.createLogoutURL(req.getRequestURI()));
      else req.setAttribute("loginURL", userSvc.createLoginURL(req.getRequestURI()));

      super.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);
    } finally {
      pm.close();
    }
  }