Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

RE: ServletRequest's path elements not updated by calls to getRequestDispatcher()

Mike Curwen

2004-01-21

Replies:

No, if you use img="/foo.gif"
then '/' ALWAYS indicates to the browser to request it from the domain
root.



> -----Original Message-----
> From: Alan Weissman [mailto:aweissman@(protected)]
> Sent: Wednesday, January 21, 2004 1:26 PM
> To: 'Tomcat Users List'
> Subject: RE: ServletRequest's path elements not updated by
> calls to getRequestDispatcher()
>
>
> You are so right Mike, thanks so much.
>
> Well I guess now my problem is that for requests ending in
> /target, my img tags need to look like "/images/image.gif"
> wheras for requests ending in
> /target/ my img tags need to look like "../images/image.gif".
>
> I can't imagine I'm the first person to try to implement this
> kind of functionality. Any other strategies out there? I'm
> debating rewriting the defaultServlet at this point.
>
> Thanks again,
> Alan
>
> -----Original Message-----
> From: Mike Curwen [mailto:mikec@(protected)]
> Sent: Wednesday, January 21, 2004 2:19 PM
> To: 'Tomcat Users List'
> Subject: RE: ServletRequest's path elements not updated by calls to
> getRequestDispatcher()
>
> That's the request dispatcher. Images and CSS are all
> 'called' from the client and have nothing to do with the dispatcher.
>
> If you type in http://www.foo.com/target
> then to the browser, the resource requested is 'target'
> and your image and css links, if they're relative, are going
> to be relative to www.foo.com
>
> If, OTOH, you ask for http://www.foo.com/target/
> then to your browser, you appear to be requesting a resouce
> in the /target directory, and so images/css will be requested
> from there.
>
> The simplest answer is:
>
> replace "img=foo.gif"
> with "img=/foo.gif"
>
>
>
> > -----Original Message-----
> > From: Alan Weissman [mailto:aweissman@(protected)]
> > Sent: Wednesday, January 21, 2004 1:11 PM
> > To: Tomcat Users List
> > Subject: ServletRequest's path elements not updated by calls
> > to getRequestDispatcher()
> >
> >
> > Hi Everyone -
> >
> > I have a requirement to allow for URLs on a site of the
> > format www.site.com/target where 'target' is not a real
> > directory or servlet, but redirects to another page on the site.
> >
> > To handle this, I have developed a ServletFilter which takes
> > the 'target' off the URL and attempts to do a server side
> > forward to a servlet using the RequestDispatcher. This is
> > working for www.site.com/target. I can get the
> > RequestDispatcher from either the ServletRequest or the
> > ServletContext and redirect to any target servlet with forward().
> >
> > The problem arises where I try to handle www.site.com/target/
> > (note the trailing slash). In this case, the
> > RequestDispatcher forwards to the target correctly HOWEVER,
> > all subsequent HTTP GETs for images, css, etc, are being
> > attempted on the wrong directory, /target/. This seems to be
> > because the ServletRequest doesn't seem to adjust its path
> > elements accordingly. For instance, if /target/ is supposed
> > to redirect to target.jsp using forward("/target.jsp") the
> > requests look like:
> >
> www.site.com/target.jsp
> www.site.com/target/image.gif
> www.site.com/target/style.css
>
> Of course, /target was never a real directory to begin with :)
>
> Now, According to the API doc for RequestDispatcher:
>
> "For a RequestDispatcher obtained via getRequestDispatcher(),
> the ServletRequest object has its path elements and
> parameters adjusted to match the path of the target resource. "
>
> Does anyone have any experience with this issue? Is this a
> bug? Is there a workaround?
>
> Thanks so much,
> Alan
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
> For additional commands, e-mail: tomcat-user-help@(protected)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
> For additional commands, e-mail: tomcat-user-help@(protected)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
> For additional commands, e-mail: tomcat-user-help@(protected)
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.