docs: public String resolve(String key) {
          if (key.equals("HTTP_USER_AGENT")) {
              return request.getHeader("user-agent");
          } else if (key.equals("HTTP_REFERER")) {
              return request.getHeader("referer");
          } else if (key.equals("HTTP_COOKIE")) {
              return request.getHeader("cookie");
          } else if (key.equals("HTTP_FORWARDED")) {
              return request.getHeader("forwarded");
          } else if (key.equals("HTTP_HOST")) {
              String host = request.getHeader("host");
              int index = (host != null) ? host.indexOf(':') : -1;
              if (index != -1)
                  host = host.substring(0, index);
              return host;
          } else if (key.equals("HTTP_PROXY_CONNECTION")) {
              return request.getHeader("proxy-connection");
          } else if (key.equals("HTTP_ACCEPT")) {
              return request.getHeader("accept");
          } else if (key.equals("REMOTE_ADDR")) {
              return request.getRemoteAddr();
          } else if (key.equals("REMOTE_HOST")) {
              return request.getRemoteHost();
          } else if (key.equals("REMOTE_PORT")) {
              return String.valueOf(request.getRemotePort());
          } else if (key.equals("REMOTE_USER")) {
              return request.getRemoteUser();
          } else if (key.equals("REMOTE_IDENT")) {
              return request.getRemoteUser();
          } else if (key.equals("REQUEST_METHOD")) {
              return request.getMethod();
          } else if (key.equals("SCRIPT_FILENAME")) {
              return request.getRealPath(request.getServletPath());
          } else if (key.equals("REQUEST_PATH")) {
              return servletRequestContext.getExchange().getRelativePath();
          } else if (key.equals("CONTEXT_PATH")) {
              return request.getContextPath();
          } else if (key.equals("SERVLET_PATH")) {
              return emptyStringIfNull(request.getServletPath());
          } else if (key.equals("PATH_INFO")) {
              return emptyStringIfNull(request.getPathInfo());
          } else if (key.equals("QUERY_STRING")) {
              return emptyStringIfNull(request.getQueryString());
          } else if (key.equals("AUTH_TYPE")) {
              return request.getAuthType();
          } else if (key.equals("DOCUMENT_ROOT")) {
              return request.getRealPath("/");
          } else if (key.equals("SERVER_NAME")) {
              return request.getLocalName();
          } else if (key.equals("SERVER_ADDR")) {
              return request.getLocalAddr();
          } else if (key.equals("SERVER_PORT")) {
              return String.valueOf(request.getLocalPort());
          } else if (key.equals("SERVER_PROTOCOL")) {
              return request.getProtocol();
          } else if (key.equals("SERVER_SOFTWARE")) {
              return "tomcat";
          } else if (key.equals("THE_REQUEST")) {
              return request.getMethod() + " " + request.getRequestURI()
                      + " " + request.getProtocol();
          } else if (key.equals("REQUEST_URI")) {
              return request.getRequestURI();
          } else if (key.equals("REQUEST_FILENAME")) {
              return request.getPathTranslated();
          } else if (key.equals("HTTPS")) {
              return request.isSecure() ? "on" : "off";
          } else if (key.equals("TIME_YEAR")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
          } else if (key.equals("TIME_MON")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.MONTH));
          } else if (key.equals("TIME_DAY")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
          } else if (key.equals("TIME_HOUR")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
          } else if (key.equals("TIME_MIN")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.MINUTE));
          } else if (key.equals("TIME_SEC")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.SECOND));
          } else if (key.equals("TIME_WDAY")) {
              return String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_WEEK));
          } else if (key.equals("TIME")) {
              return DateUtils.getCurrentDateTime(servletRequestContext.getExchange());
          }
          return null;
      }