Why can't I wrap the ServletRequest when trying to capture JSP Output
- by Patrick Cornelissen
I am trying to dispatch in a servlet request handler to the JSP processor and capture the content of it.
I am providing wrapper instances for the ServletRequest and ServletResponse, they implement the corresponding HTTPServletRequest/-Response interfaces, so they should be drop-in replacements. All methods are currently passed to the original Servlet Request object (I am planning to modify some of them soon). Additionally I have introduced some new methods.
(If you want to see the code: http://code.google.com/p/gloudy/source/browse/trunk/gloudyPortal/src/java/org/gloudy/gloudlet/impl/RenderResponseImpl.java)
The HttpServletResponse uses it's own output streams to capture the output.
When I try to call
request.getRequestDispatcher("/WEB-INF/views/test.jsp").include(request, response);
With my request and response wrappers the method returns and no content has been captured. When I tried to pass the original request object it worked! But that's not what I need in the long run...
request.getRequestDispatcher("/WEB-INF/views/test.jsp").include(request.getServletRequest(), response);
This works. getservletRequest() returns the original Request, given by the servlet container.
Does anyone know why this is not working with my wrappers?