File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes filters vs RequestDispatcher's include() method Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "filters vs RequestDispatcher Watch "filters vs RequestDispatcher New topic

filters vs RequestDispatcher's include() method

sandeep kumar thommandru

Joined: Dec 30, 2011
Posts: 21
hi friends can any one explain me what the main and exact difference between filters and RequestDispatcher's include() method?

some will say that filters are the preprocessors before they reach the servlets/jsps..
preprocessors means? preprocessors are those which will automatically do the entire work internally before the thing which we want to use is getting ready..
are they built automatically? or we should write the code?
if it was not automatic then why it is said to be preprocessor and why cant we use requestdispatcher in that case???

what is the difference between
code snippet:

pw.println("start in servlet 1");
pw.println("end in servlet 1");
code snippet:

pw.println("start in filter 1");
pw.println("end in filter 1");

and second one what is the use of filter chain concept??

suppose if above code is repeated in,and in place of xxx if we replace like this if we go on implementing.. we will get a chain using request dispatchers..

the only difference is we will place the order of filters in web.xml (<filter-mapping>) section.. so that filters execute in that order..

in request dispatcher we will call in the servlets as rd.include("/servlet or /jsp"); this will also form a chain in the order we mentioned in every servlet..

if not understood.. in detail with code:

using request dispatcher::


the output is:

start in servlet 1
start in servlet 2
target servlet
end in servlet 2
end in servlet 1

using filters::


output is:

start in filter 1
start in filter 2
this is in target servlet
end in filter 2
end in filter 1

can any one please explain me the exact difference???

please help me friends..

i am very thankful to you if the answer is apt..

thanking you
sandeep kumar
I agree. Here's the link:
subject: filters vs RequestDispatcher's include() method
It's not a secret anymore!