docs: public void forward(String relativeUrlPath) throws ServletException, IOException {
          // JSP.4.5 If the buffer was flushed, throw IllegalStateException
          try {
              out.clear();
          }
          catch (IOException ex) {
              throw new IllegalStateException("jsp.error.attempt_to_clear_flushed_buffer");
          }
  
          // Make sure that the response object is not the wrapper for include
          while (response instanceof ServletResponseWrapperInclude) {
              response = ((ServletResponseWrapperInclude) response).getResponse();
          }
  
          final String path = getAbsolutePathRelativeToContext(relativeUrlPath);
          String includeUri = (String) request.getAttribute(Constants.INC_SERVLET_PATH);
  
          final ServletResponse fresponse = response;
          final ServletRequest frequest = request;
  
          if (includeUri != null)
              request.removeAttribute(Constants.INC_SERVLET_PATH);
          try {
              context.getRequestDispatcher(path).forward(request, response);
          }
          finally {
              if (includeUri != null)
                  request.setAttribute(Constants.INC_SERVLET_PATH, includeUri);
              request.setAttribute(Constants.FORWARD_SEEN, "true");
          }
      }