see below > -----Original Message----- > From: RXZ JLo [mailto:[EMAIL PROTECTED]] > Sent: Friday, December 13, 2002 12:58 AM > To: Tomcat Users List > Subject: Re: RequestDispatcher scenarios ( was RE: static url routing) > > > > --- "Craig R. McClanahan" <[EMAIL PROTECTED]> wrote: > > > > > > On Mon, 9 Dec 2002, RXZ JLo wrote: > > > > > Date: Mon, 9 Dec 2002 03:21:25 -0800 (PST) > > > From: RXZ JLo <[EMAIL PROTECTED]> > > > Reply-To: Tomcat Users List > > <[EMAIL PROTECTED]> > > > To: Tomcat Users List > > <[EMAIL PROTECTED]> > > > Subject: RequestDispatcher scenarios ( was RE: > > static url routing) > > > > > > > > > --- "Craig R. McClanahan" <[EMAIL PROTECTED]> > > wrote: > > > > To do a redirect filter, then, you'd examine the > > > > request URI to determine > > > > what kind of remapping is needed, and then do a > > > > RequestDispatcher.forward() call to the remapped > > > > resource name. After the > > > > forward returns (which means that the actual > > > > response has been created), > > > > simply return instead of calling > > chain.doFilter() to > > > > pass the request on. > > > > > > > > > > I am looking for various scenarios where > > > RequestDispatcher is used. When I searched the > > list, I > > > noticed that it can be used in a Servlet too. What > > > then is the difference between using it in a > > Filter > > > and using it in servlet? Can I just use it in the > > > Servlet to serve my purpose(of serving static > > > content)? > > > > > > > If you're serving your own static content with your > > own servlet, then you > > could do this. Using a Filter lets you use Tomcat's > > standard static file > > serving servlet with no modifications. > > > It seems I am confused about how RequestDispatcher > works. From what I understand I think using a > RequestDispatcher from within a Servlet or a Filter, > is same - the request is viewed as a fresh request > appropriately handled by Tomcat. This means, when I > use RequestDispatcher(static_url).forward()+return in > a servlet, it is the tomcat that is serving the static > url, and in the same way as directly requested static > urls. > RequestDisatcher is for dispatching (parts of)the current request to other resources in the same context without involving the browser. This means that it is not a new request(filters/valves/etc do not get invoked), but it is processed by the servlet/filter just like a request directly to the servlet/filter
> "If you're serving your own static content with your > own servlet, then you could do this." -- I want > RequestDispatcher to handle serving the static content > in my own servlet. > The DefaultServlet handles static content. This is not part of your servlet, it is its own built-in servlet. If you need to modify behavior(custom auth,etc) then you can set up a filter that is mapped to the static content. for example: the following mapping will cause 'MyFilter' to be run for any file requested from the /images directory. If you do not set up a custom servlet to handle /images/*, then the DefaultServlet will serve the request file from your 'images' directory provided your filter does not intercept the request(i.e. redirect to a login page). <filter-mapping> <filter-name>Myfilter</filter-name> <url-pattern>/images/*</url-pattern> </filter-mapping> I use this on a downloadable executable that I have - my filter ensures that you have logged in(custom auth) and that you have agreed to terms before allowing the DefaultServlet to give you the file. Charlie > Please clarify. > Thanks, > rf. > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.com > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>