code: public List<String> getResourceUri(final HttpServletRequest req)
            throws ServletException {
      String uri = req.getServletPath();
  
      if ((uri == null) || (uri.length() == 0)) {
        /* No path specified - set it to root. */
        uri = "/";
      }
  
      return fixPath(uri);
    }
docs: Get the decoded and fixed resource URI. This calls getServletPath() to
  obtain the path information. The description of that method is a little
  obscure in it's meaning. In a request of this form:<br/><br/>
  "GET /ucaldav/user/douglm/calendar/1302064354993-g.ics HTTP/1.1[\r][\n]"<br/><br/>
  getServletPath() will return <br/><br/>
  /user/douglm/calendar/1302064354993-g.ics<br/><br/>
  that is the context has been removed. In addition this method will URL
  decode the path. getRequestUrl() does neither.
  
  @param req      Servlet request object
  @return List    Path elements of fixed up uri
  @throws ServletException