tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 25965] - RequestDispatcher fails after cross context include
Date Thu, 06 Jan 2005 00:27:32 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG∑
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=25965>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND∑
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=25965





------- Additional Comments From markt@apache.org  2005-01-06 01:27 -------
The following quotes are from section SRV.14.2.5.1 (RequestDispatcher methods)
of the spec.

<spec-quote>
public void forward(ServletRequest request, ServletResponse response)
            throws ServletException, IOException

Forwards a request from a servlet to another resource (servlet, JSP file, or
HTML file) on the server. This method allows one servlet to do preliminary
processing of a request and another resource to generate the response.

For a RequestDispatcher obtained via getRequestDispatcher(), the
ServletRequest object has its path elements and parameters adjusted to
match the path of the target resource.
...
The request and response parameters must be either the same objects as were
passed to the calling servletís service method or be subclasses of the
ServletRequestWrapper or ServletResponseWrapper classes that wrap them.
</spec-quote>

<spec-quote>
public void include(ServletRequest request, ServletResponse response)
            throws ServletException, IOException

Includes the content of a resource (servlet, JSP page, HTML file) in the
response. In essence, this method enables programmatic server-side includes.

The ServletResponse object has its path elements and parameters remain
unchanged from the callerís. The included servlet cannot change the response
status code or set headers; any attempt to make a change is ignored.

The request and response parameters must be either the same objects as were
passed to the calling servletís service method or be subclasses of the
ServletRequestWrapper or ServletResponseWrapper classes that wrap
them.
</spec-quote>

To address the question raised by Bill above, ie what is the "current servlet
context" consider the case of a relative path.

Relative paths are, by definition, relative to the current request. The current
request (since we are doing includes not forwards) is still the original request
(to context A). Hence the path is relative to the original request. Since it is
relative to the original request the path must be within the original servlet
context. Therefore, the "current servlet context" must be the original context
(client or context A in the discussion above).

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
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