https://bz.apache.org/bugzilla/show_bug.cgi?id=59913

            Bug ID: 59913
           Summary: Tomcat 8.5.x missing javax.servlet.forward.*
                    attributes in an included jsp
           Product: Tomcat 8
           Version: 8.5.4
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: do...@moonteeth.com

Created attachment 34081
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=34081&action=edit
Example webapp

I have a really simply example (courtesy of the developer that discovered this
issue) at:
https://dl.dropboxusercontent.com/u/24563006/TestApp.war

It contains a test.jsp that does:

<%
   String href= "/WEB-INF/jsp/test/test1.jsp";
   RequestDispatcher rd = request.getRequestDispatcher(href);
   rd.forward(request, response);
%>

test1.jsp simply dumps out all the attributes and then:
<jsp:include page="/WEB-INF/jsp/test/test2.jsp" />

and test2.jsp dumps out attributes again.

In tomcat 8.0.36 the output of
http://server/TestApp/test.jsp is:

You are in test1.jsp 

test1 inRequest org.apache.catalina.core.ApplicationHttpRequest@22f9afc4
test1 inRequest.getServletPath() /WEB-INF/jsp/test/test1.jsp
javax.servlet.forward.request_uri :: /TestApp/test.jsp
javax.servlet.forward.context_path :: /TestApp
javax.servlet.forward.servlet_path :: /test.jsp



You are in test2.jsp 

test2 inRequest org.apache.catalina.core.ApplicationHttpRequest@21695eed
test2 inRequest.getServletPath() /WEB-INF/jsp/test/test1.jsp
javax.servlet.include.request_uri :: /TestApp/WEB-INF/jsp/test/test2.jsp
javax.servlet.include.context_path :: /TestApp
javax.servlet.include.servlet_path :: /WEB-INF/jsp/test/test2.jsp
javax.servlet.forward.request_uri :: /TestApp/test.jsp
javax.servlet.forward.context_path :: /TestApp
javax.servlet.forward.servlet_path :: /test.jsp

Note that the "You are in test2.jsp" block contains javax.servlet.forward.*

In tomcat 8.5.4 (and 8.5.3 too)
It looks like:
You are in test1.jsp 

test1 inRequest org.apache.catalina.core.ApplicationHttpRequest@31d80a34
test1 inRequest.getServletPath() /WEB-INF/jsp/test/test1.jsp
javax.servlet.forward.request_uri :: /TestApp/test.jsp
javax.servlet.forward.context_path :: /TestApp
javax.servlet.forward.servlet_path :: /test.jsp
javax.servlet.forward.mapping ::
org.apache.catalina.core.ApplicationMapping$MappingImpl@6a64c5b8



You are in test2.jsp 

test2 inRequest org.apache.catalina.core.ApplicationHttpRequest@1130eccf
test2 inRequest.getServletPath() /WEB-INF/jsp/test/test1.jsp
javax.servlet.include.request_uri :: /TestApp/WEB-INF/jsp/test/test2.jsp
javax.servlet.include.context_path :: /TestApp
javax.servlet.include.servlet_path :: /WEB-INF/jsp/test/test2.jsp
javax.servlet.include.mapping ::
org.apache.catalina.core.ApplicationMapping$MappingImpl@7e9a01d5


Servlet spec section 9.4.2 Forwarded Request Parameters
states this:
These attributes are accessible from the forwarded servlet via the
getAttribute method on the request object. Note that these attributes must
always reflect the information in the original request even under the situation
that multiple forwards and subsequent includes are called.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to