I know that this is not a proper list, but considering that original
author of Tomcat spends a lot of time here I thought it was worth a
shot ;) Also, I didn't want to go through hassle of
subscribing/unsubscribing to Tomcat mailing list, I hoped I would get
help in my home list ;)
As I said, I use Tomcat 4 (4.0.31 to be precise), which is compliant
with SRV2.3/JSP1.2 spec. Therefore I am allowed to use <jsp:include
flush="false"/> or without flush attribute at all; included resource
should be buffered. My problem is that I cannot do a redirect from
included page.
This works:
-----------
main.jsp --- (begin) ---
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<%
if ("POST".equalsIgnoreCase(request.getMethod())) {
String redirectURL = request.getRequestURL().toString();
response.sendRedirect(redirectURL);
}
%>
<form method="POST">
<input type="submit" name="submitkey" value="Submit"/>
</form>
</body>
</html>
main.jsp --- (end) ---
When I load the main.jsp page, it shows the form. When I submit the
form, it processes POST and redirects back to the same page. Exactly
what I need.
This does not work:
-------------------
main2.jsp --- (begin) ---
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<jsp:include page="inc2.jsp"/>
</body>
</html>
main2.jsp --- (end) ---
inc2.jsp --- (begin) ---
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
if ("POST".equalsIgnoreCase(request.getMethod())) {
String redirectURL = request.getRequestURL().toString();
response.sendRedirect(redirectURL);
}
%>
<form method="POST">
<input type="submit" name="submitkey" value="Submit"/>
</form>
inc2.jsp --- (end) ---
When I load main2.jsp, it shows the form. When I submit it, scriptlet
calls sendRedirect, but browser does not redirect. LiveHTTPHeaders
shows that instead of 302 browser receives a regular 200. On the other
hand, when I was sending redirect, response was not committed yet, and
no exceptions were thrown.
I tried to replace
response.sendRedirect(redirectURL);
with
response.reset();
response.sendRedirect(redirectURL);
response.flushBuffer();
but this did not work either.
Does anyone have a clue?
Michael.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]