Correct answer

Renu Radhika

Ranch Hand

Posts: 243

posted 9 years ago

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?

Pravin Jain

Ranch Hand

Posts: 60

posted 9 years ago

The answes c & d are correct. a is not currect, as can be verified from the apis.

The Zen of Java Programming.

Aniket Patil

Ranch Hand

Posts: 218

posted 9 years ago

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.

ServletContext::getRequestDispatcher 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.

SCJP 5.0 | SCWCD 1.4 <br /> <br />If you don't know where you are going, any road will take you there!

Renu Radhika

Ranch Hand

Posts: 243

posted 9 years ago

"The getRequestDispatcher method of ServletContext class takes the full path of the servlet"

I feel this part is not correct,as it doesnt take the full path

Chandra Bhatt

Ranch Hand

Posts: 1710

posted 9 years ago

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.