Monday, September 26, 2005

What are the differences between method getRequestDispatcher(String path) and getNamedDispatcher(String path) in ServletContext Class?


Returns a RequestDispatcher object that acts as a wrapper for the named servlet.

getNamedDispatcher(String path) method takes the name of the Servlet as parameter which is declared via Deployment descriptor.


Deployment Descriptor



servlet-name FirstServlet /servlet-name

servlet-class com.example.ServletExample /servlet-class



RequestDispatcher dispatch = request.getNamedDispatcher(“FirstServlet”);

dispatch.forward(request, response);

Note: A servlet instance can determine its name using servletConfig.getServletName(); This method returns the name of the class that implements HttpServlet class.


Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path.

RequestDispatcher dispatch = request.getRequestDispatcher("/tes");

Here “/tes represents the url-pattern element value of the servlet class.


servlet-name Test /servlet-name

url-pattern /tes /url-pattern


It represents the path of the servlet class. Since both the base as well as target Servlet are in the same package structure by just specifying the url-pattern element value we will be able to access the target servlet.

We shouldn’t specify the entire path like

String str = “/WEB-INF/classes/com/example/posr/Test”

RequestDispatcher dispatch = request.getRequestDispatcher(str);

 To forward a request to a jsp page we use

RequestDispatcher dispatch = request.getRequestDispatcher("/TestJspOne.jsp");

Here ”/TestJspOne.jsp” the slash denotes the Jsp page is at the root of the application.


Blogger Siva said...

Nice Blog. Keep posting more .. ?
Check this mcse certification exam site. It pretty much covers mcse certification exam related stuff.

7:16 AM  

Post a Comment

<< Home