code: @Nonnull
    @Nonempty
    public static StringBuilder getRequestURL (@Nonnull final HttpServletRequest aHttpRequest)
    {
      ValueEnforcer.notNull (aHttpRequest, "HttpRequest");
  
      final StringBuilder ret = getFullServerName (aHttpRequest.getScheme (),
                                                   aHttpRequest.getServerName (),
                                                   aHttpRequest.getServerPort ());
  
      // Path
      final String sRequestURI = getRequestURI (aHttpRequest);
      ret.append (sRequestURI);
  
      return ret;
    }
docs: Reconstructs the URL the client used to make the request. The returned URL
  contains a protocol, server name, port number, and server path, but it does
  not include query string parameters.
  <p>
  If this request has been forwarded using
  {@link javax.servlet.RequestDispatcher#forward}, the server path in the
  reconstructed URL must reflect the path used to obtain the
  RequestDispatcher, and not the server path specified by the client.
  <p>
  Because this method returns a <code>StringBuilder</code>, not a string, you
  can modify the URL easily, for example, to append query parameters.
  <p>
  This method is useful for creating redirect messages and for reporting
  errors.
  
  @param aHttpRequest
  The HTTP request to get the request URL from. May not be
  <code>null</code>.
  @return a <code>StringBuilder</code> object containing the reconstructed
  URL