code: public void handle(String pathInContext,
                         String pathParams,
                         HttpRequest request,
                         HttpResponse response)
          throws HttpException, IOException
      {
          if(log.isTraceEnabled())log.trace("Look for "+pathInContext+" in "+_forward);
          
          String newPath=null;
          String query=null;
          if (_root!=null && ("/".equals(pathInContext) || pathInContext.startsWith("/;")))
              newPath=_root;
          else
          {
              Map.Entry entry = _forward.getMatch(pathInContext);
              if (entry!=null)
              {
                  String match = (String)entry.getValue();
                  if (_handleQueries)
                  {
                      int hook = match.indexOf('?');
                      if (hook != -1){
                          query = match.substring(hook+1);
                          match = match.substring(0, hook);
                      }
                  }
                  String info=PathMap.pathInfo((String)entry.getKey(),pathInContext);
                  if(log.isDebugEnabled())log.debug("Forward: match:\""+ match+ "\" info:"+info+"\" query:"+query);
                  newPath=info==null?match:(URI.addPaths(match,info));
              }
          }
          
          if (newPath!=null)
          {
              if(log.isDebugEnabled())log.debug("Forward from "+pathInContext+" to "+newPath);
              
              int last=request.setState(HttpMessage.__MSG_EDITABLE);
              String context=getHttpContext().getContextPath();
              if (context.length()==1)
                  request.setPath(newPath);
              else
                  request.setPath(URI.addPaths(context,newPath));
              if (_handleQueries && query != null){
                  // add forwarded to query string to parameters
                  UrlEncoded.decodeTo(query, request.getParameters());
              }
              request.setState(last);
              getHttpContext().getHttpServer().service(request,response);
              return;
          }
      }
docs: /* ------------------------------------------------------------