docs: public final void doWork(final HttpServletRequest pReq,
      final HttpServletResponse pResp) throws ServletException, IOException {
      pReq.setCharacterEncoding("UTF-8");
      pResp.setCharacterEncoding("UTF-8");
      IFactoryAppBeans factoryAppBeans = null;
      try {
        HashMap<String, Object> reqVars = new HashMap<String, Object>();
        factoryAppBeans = (IFactoryAppBeans) getServletContext()
            .getAttribute("IFactoryAppBeans");
        HttpRequestData requestData = new HttpRequestData(pReq, pResp);
        requestData.setAttribute("reqVars", reqVars);
        IHandlerRequest hndlI18nRequest = (IHandlerRequest)
          factoryAppBeans.lazyGet("hndlI18nRequest");
        hndlI18nRequest.handle(reqVars, requestData);
        IMngSoftware mngSoftware = (IMngSoftware) factoryAppBeans
          .lazyGet("IMngSoftware");
        ISrvI18n srvI18n = (ISrvI18n) factoryAppBeans.lazyGet("ISrvI18n");
        UtlJsp utlJsp = (UtlJsp) factoryAppBeans.lazyGet("UtlJsp");
        String dbgShStr = pReq.getParameter("dbgSh");
        if (dbgShStr != null) {
          mngSoftware.setDbgSh(Boolean.valueOf(dbgShStr));
        }
        String dbgFlStr = pReq.getParameter("dbgFl");
        if (dbgFlStr != null) {
          mngSoftware.setDbgFl(Integer.parseInt(dbgFlStr));
        }
        String dbgClStr = pReq.getParameter("dbgCl");
        if (dbgClStr != null) {
          mngSoftware.setDbgCl(Integer.parseInt(dbgClStr));
        }
        pReq.setAttribute("mngSoftware", mngSoftware);
        pReq.setAttribute("srvI18n", srvI18n);
        pReq.setAttribute("utlJsp", utlJsp);
        String nmRnd = pReq.getParameter("nmRnd");
        String path = dirJsp + nmRnd + ".jsp";
        RequestDispatcher rd = getServletContext().getRequestDispatcher(path);
        rd.include(pReq, pResp);
      } catch (Exception e) {
        if (factoryAppBeans != null) {
          ILog logger = null;
          try {
            logger = (ILog) factoryAppBeans.lazyGet("ILog");
          } catch (Exception e1) {
            e1.printStackTrace();
          }
          if (logger != null) {
            logger.error(null, getClass(), "WORK", e);
          } else {
            e.printStackTrace();
          }
        } else {
          e.printStackTrace();
        }
        if (e instanceof ExceptionWithCode) {
          pReq.setAttribute("error_code",
            ((ExceptionWithCode) e).getCode());
          pReq.setAttribute("short_message",
            ((ExceptionWithCode) e).getShortMessage());
        } else {
          pReq.setAttribute("error_code",
            HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
        pReq.setAttribute("javax.servlet.error.status_code",
          HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        pReq.setAttribute("javax.servlet.error.exception", e);
        pReq.setAttribute("javax.servlet.error.request_uri",
          pReq.getRequestURI());
        pReq.setAttribute("javax.servlet.error.servlet_name", this.getClass()
          .getCanonicalName());
        pResp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
      }
    }