• Post Reply Bookmark Topic Watch Topic
  • New Topic

Difference between getServlet() & getRequestDispatcher()  RSS feed

Raghavendra Holla
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am confused with above two usage and their advantage over others. By doing

1) RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet/emSessionInit");

2) emSessionInit ems = (BookDBServlet) getServletConfig().getServletContext().getServlet("emSessionInit");
My doubts are
a) What are limitations of 1 & 2, which context they can be used.
b) Can I do (2), i.e. By getting handle to servlet can i call doPost method of that servlet?
c) Is it possible to call any other method of servlet by using request dispacther object?
d) Clearly it is not possible to call servlet residing in diffrent server than the current server by 2, I am correct ?
e) When I use forward or include of RequestDispatch object what methods of calling servlet called, is it determined by what method in request object?

Sorry ... the list is big.. But if anybody can help me it would be great help for me. I think these quesion has to be answered by experts, Frank & Bill any help from you end?
Thanks once again,
Frank Carver
Posts: 6920
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There is one important distinction. Option 2, getServlet() simply won't work in servlet containers conforming to version 2.2 or later of the Servlet API. getServlet has been deprecated and defined to always return null, so you have to use the RequestDispatcher interface.
This only leaves your question e), and I'm not sure about that one. But check the Servlet API documentation at Sun's web site.
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!