A.The getRequestDispatcher method of ServletContext class takes the full path of the servlet, whereas the getRequestDispatcher method of HttpServletRequest class takes the path of the servlet relative to the ServletContext.
B.The include method defined in the RequestDispatcher class can be used to access one servlet from another. But it can be invoked only if no output has been sent to the server.
C.The getRequestDispatcher(String URL) is defined in both ServletContext and HttpServletRequest method
D.The getNamedDispatcher(String) defined in HttpServletRequest class takes the name of the servlet and returns an object of RequestDispatcher class.
I feel the answer is c&d but the answers are a&c.Can anyone explain?
getRequestDispatcher(String URL) is found in both ServletContext and HttpServletRequest, hence C is correct.
The include method defined in the RequestDispatcher class can be invoked even if response has been committed (unlike forward). include() does not throw an IllegalStateException even if the response was already committed.
Hence B is incorrect.
a is not currect, as can be verified from the apis
Are you sure referring the official J2EE APIs?
public RequestDispatcher getRequestDispatcher(String path)
The pathname must begin with a "/" and is interpreted as relative to the current context root.
Hence A is correct.
Straight from Java� Servlet Specification
The getRequestDispatcher method takes a String argument describing a
path within the scope of the ServletContext. This path must be relative to the root of the ServletContext and begin with a �/�.
To allow RequestDispatcher objects to be obtained using relative paths that
are relative to the path of the current request (not relative to the root of the ServletContext), the getRequestDispatcher method is provided in the