the HttpServletRequest.getRequestDispatcher()could take a relative path.
quote from the api: "The pathname specified may be relative, although it cannot extend outside the current
servlet context. If the path begins with a "/" it is interpreted as relative to the current context root. This method returns null if the servlet container cannot return a RequestDispatcher."
the ServletContext.getRequestDispatcher() could only take an absolute path.
quote from the api: "The pathname must begin with a "/" and is interpreted as relative to the current context root. Use getContext to obtain a RequestDispatcher for resources in foreign contexts. This method returns null if the ServletContext cannot return a RequestDispatcher."