tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geoff Soutter" <ge...@whitewolf.com.au>
Subject repost: contextPath + servletPath + pathInfo = requestURI?
Date Fri, 12 Nov 1999 05:19:34 GMT
anyone care to help me with this one? servlet API gurus welcome :-)

-----Original Message-----
From: Geoff Soutter <geoff@whitewolf.com.au>
To: tomcat-dev <tomcat-dev@jakarta.apache.org>
Date: Tuesday, 2 November 1999 17:43
Subject: contextPath + servletPath + pathInfo = requestURI?


>Hi there,
>
>I'm trying to get tomcat working with a servlet mapped to / (actually /* as
>per the 2.2 spec), in the default context.
>
>It sort of works (thanks Gonzo :-) after a couple of fixes to
>core.RequestMapper.getPrefixMatch() . However, I need clarification on how
>this really ought to work before I submit a patch.
>
>The 2.2 PR2 spec says:
>
>"It is important to note that the following equation is always true:
>requestURI = contextPath + servletPath + pathInfo. In all cases a servlet
>developer must be able to access these portions of the path, add them
>together as shown, and obtain the same result as returned by
>ServletRequest.getRequestURI."
>
>[ Note: As discussed a while back on this list, this isn't strictly true
>since pathinfo and servlet path (and I presume contextPath) are supposed to
>be % decoded and requestURI is not. So it's more like contextPath +
>servletPath + pathInfo = percent_decoded( requestURI ). But thats another
>story... ]
>
>anyway, consider the situation where you map a servlet to /*, and you have
a
>requestURI = "/blah"
>
>the current tomcat does the following:
>
>contextPath = "/"
>servletPath = null
>pathInfo = "/blah"
>
>which adds as per the spec as "/ "+ null + "/blah" = "/null/blah" (if you
>take the spec as java code, which I presume was the intention).
>
>For testing, I've made tomcat do the following:
>
>contextPath = "/"
>servletPath = ""
>pathInfo = "/blah"
>
>which adds as per the spec as "/" + "" + "/blah" = '//blah' (which is still
>wrong). However, this works for my test servlet as it was written for 2.0
>and doesn't make use of contextPath.
>
>Problem is, _both_ of these options seem to violate the spec! Any ideas on
>what the correct solution is?
>
>Also, the spec states that both contextPath and servletPath must start with
>a "/" character. This clause seems to clash with the clause about adding in
>the case where you are mapping a servlet to /*
>
>Cheers
>
>Geoff
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
>


Mime
View raw message