11.Which of the following are correct statements. Select the two correct answers.
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?
There is no getNamedDispatcher(String) defined in HttpServletRequest class, hence D is incorrect.
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
Full path means context level path, or say it root level path that begins with "/".
Straight from Java� Servlet Specification Version 2.4
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 ServletRequest interface.