My problem seems to be that the Servlet API works relative the the Servlets Context and not the actuall servlet. So even getResource / getResourceAsStream resolve relative to the Servlet Context Root and not the Servlet/JSP
i.e. application.getResource("") returns resources relative to the Context root. Wouldn't it be better to have: application.getResource("/") resolve to the subcontext/directory of the Servlet Context Root application.getResource(".") or application.getResource("") resolve to the subcontext/directory of the Servlet/JSP application.getResource("..") resolve to the parent subcontext/directory of the Servlet/JSP This would seem logical and much more powerfull, would it not? -Mark Diggory Shapira, Yoav wrote: >Hi, >I believe that if you access it via a mapping, that's how you will see >its location. So if you go to the real location in the browser, i.e. >/Jaxp/JSPTransformExample.jsp, you will get that location instead of the >mapped one. > >In general, you are not guaranteed to have access to the server's >mappings, much less the ability to introspect them as you would like in >this use case. > >A better approach may be to use getResource() and/or >getResourceAsStream(), as that would give you the resource and would >work in a WAR, which the getRealPath() approach won't. > >Yoav Shapira >Millennium ChemInformatics > > > > >>-----Original Message----- >>From: Mark R. Diggory [mailto:[EMAIL PROTECTED]] >>Sent: Thursday, August 29, 2002 9:53 AM >>To: Tomcat Users List >>Subject: Is this a Bug in request.getServletPath() ? >> >>I'm trying to get a file in the filesystem relative to the location of >> >> >a > > >>JSP Page. At first Blush the following would seem appropriate: >> >><% >>String jsp_location = >> >> >application.getRealPath(request.getServletPath()); > > >>String relative = >> >> >jsp_location.substring(0,jsp_location.lastIndexOf("/")); > > >>... get the resource using this path ... >> >>%> >> >>however, when one uses a servlet mapping on a JSP Page like below. >> >><servlet> >> <servlet-name>JSPTestMap</servlet-name> >> <jsp-file>/Jaxp/JSPTransformExample.jsp</jsp-file> >></servlet> >><servlet-mapping> >> <servlet-name>JSPTestMap</servlet-name> >> <url-pattern>/Jaxp/MapExample.jsp</url-pattern> >></servlet-mapping> >> >>request.getServletPath() returns >> >><url-pattern>/Jaxp/MapExample.jsp</url-pattern> >> >>and not >> >><jsp-file>/Jaxp/JSPTransformExample.jsp</jsp-file> >> >>is there any way I can get hold of the original real location of the >> >> >JSP > > >>Page I'm working in and have it also work with servlet-mappings? >> >>-Mark Diggory >> >> >> >>-- >>To unsubscribe, e-mail: <mailto:tomcat-user- >>[EMAIL PROTECTED]> >>For additional commands, e-mail: <mailto:tomcat-user- >>[EMAIL PROTECTED]> >> >> > > > >------------------------------------------------------------------------ > >This e-mail, including any attachments, is a confidential business communication, and >may contain information that is confidential, proprietary and/or privileged. This >e-mail is intended only for the individual(s) to whom it is addressed, and may not be >saved, copied, printed, disclosed or used by anyone else. If you are not the(an) >intended recipient, please immediately delete this e-mail from your computer system >and notify the sender. Thank you. > > > >------------------------------------------------------------------------ > >-- >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]>