O.K., I'm off to the Tomcat list to pursue this further. I found the
following function in the Tomcat source, and am wondering whether it's the
root of my problem, and if so, why it's written this way.
/**
* Disallow <code>sendRedirect()</code> calls on an included response.
*
* @param location The new location
*
* @exception IOException if an input/output error occurs
*/
public void sendRedirect(String location) throws IOException {
if (!included)
((HttpServletResponse) getResponse()).sendRedirect(location);
}
BTW, Telnet simply showed what we expected--status 200, no Location header
set, and nothing where the <JSP:INCLUDE> should have been.
Thanks again.
Jay
> -----Original Message-----
> From: Jay Burgess [mailto:[EMAIL PROTECTED]]
> Sent: Monday, May 20, 2002 10:32 AM
> To: [EMAIL PROTECTED]
> Subject: Re: sendRedirect() from within a <jsp:include>?
>
>
> The mystery thickens. I just added "res.isCommitted()" right before my
> sendRedirect(), and it returns false. So it appears that the
> response is
> not being committed (which is what we expect), yet the
> sendRedirect() is
> simply being ignored.
>
> I'll try your Telnet suggestion now and see what comes back. I'm also
> going to try mimic'ing sendRedirect() by setting the headers
> by hand, and
> see if there's any difference.
>
> Thanks for the input.
>
> Jay
>
> > -----Original Message-----
> > From: Joseph Ottinger [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, May 20, 2002 10:16 AM
> > To: [EMAIL PROTECTED]
> > Subject: Re: sendRedirect() from within a <jsp:include>?
> >
> >
> > It wouldn't surprise me to see a bug in Tomcat, since I run
> > up against a few
> > of them all the time. :)
> >
> > Anyway, it's easy to figure out what's happening: telnet to
> > the server/port,
> > do a simple GET on your page that has the redirect, and read
> > the headers.
> > You'd expect the buffering to work, yes. (I certainly would.)
> > You should
> > also be pessimistic as to whether it does or not, esp. if
> > what you expect
> > isn't happening when you know it should.
> >
> > As far as the clue level... well, you're in JSP-I, where the
> > clues are few
> > and far between. If you make an assumption that everyone who
> > posts anything
> > is generally clueless, nineteen times out of twenty, you're
> > likely to be
> > right. :)
> >
> > >From: Jay Burgess <[EMAIL PROTECTED]>
> >
> > >Gah!? You seem to imply that I don't understand the how
> the redirect
> > >actually works. I do. But my understanding from the JSP
> > spec is that the
> > >container is supposed to provide an 8kb buffer by default (Section
> > >JSP.2.10.1), so the six bytes that make up the string
> > "<HTML>" should not
> > >be sent down the line. I'm supposed to have the ability to do a
> > >sendRedirect() in this case.
> > >
> > >I'm using Tomcat 4.0.3, by the way, and since it's
> supposed to be the
> > >Reference Implementation, I assumed it would work. I
> find it hard to
> > >believe that this is a bug in Tomcat, as it's such base
> > functionality.
> > >
> > >Other ideas?
> > >
> > >Jay
> > >
> > > > -----Original Message-----
> > > > From: Joseph Ottinger [mailto:[EMAIL PROTECTED]]
> > > > Sent: Monday, May 20, 2002 5:50 AM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Re: sendRedirect() from within a <jsp:include>?
> > > >
> > > >
> > > > Gah! The problem is that sendRedirects have to take place
> > > > before any output
> > > > is spooled to the client. It's a HEADER. One would hope your
> > > > container would
> > > > massage the output and cache the body content until it needs
> > > > to send it down
> > > > the line, but apparently it's not doing that.
> > > >
> > > > Thus, the <html> is the problem.
> > > >
> > > >
> > > > >From: Bhushan_Bhangale <[EMAIL PROTECTED]>
> > > > >Reply-To: A mailing list about Java Server Pages
> > specification and
> > > > >reference <[EMAIL PROTECTED]>
> > > > >To: [EMAIL PROTECTED]
> > > > >Subject: Re: sendRedirect() from within a <jsp:include>?
> > > > >Date: Mon, 20 May 2002 15:40:23 +0530
> > > > >
> > > > >Before the forward call you should not write anything to
> > the response
> > > > >object. If you will write anything to response object and
> > > > then you will
> > > > >forward to some other URL then you will always get the error.
> > > > >
> > > > >-----Original Message-----
> > > > >From: Jay Burgess [mailto:[EMAIL PROTECTED]]
> > > > >Sent: Friday, May 17, 2002 9:57 PM
> > > > >To: [EMAIL PROTECTED]
> > > > >Subject: sendRedirect() from within a <jsp:include>?
> > > > >
> > > > >
> > > > >Obviously I'm missing some important detail about the
> > > > mechanics of using
> > > > ><jsp:include>.
> > > > >
> > > > >I've got a JSP with nothing in it but a
> > > > >"<html><jsp:include>,,,</jsp:include></html>". The
> > "page" for the
> > > > ><jsp:include> is a direct call to my servlet. The only
> > > > thing my servlet
> > > > >does is a sendRedirect() to another page.
> > > > >
> > > > >When I request my JSP, I get back just "<html></html>",
> > > > which means the
> > > > >redirect failed, the <jsp:include> did nothing, and I
> > didn't get any
> > > > >exceptions (like an IllegalStateException showing the
> > > > response was already
> > > > >committed).
> > > > >
> > > > >What am I missing about trying to do things this way?
> > BTW, I'm using
> > > > >Tomcat 4.0.3.
> > > > >
> > > > >Jay
> > > > >
> > > > >=============================================================
> > > > ==============
> > > > >To unsubscribe: mailto [EMAIL PROTECTED] with
> body: "signoff
> > > > >JSP-INTEREST".
> > > > >For digest: mailto [EMAIL PROTECTED] with body: "set
> > JSP-INTEREST
> > > > >DIGEST".
> > > > >Some relevant FAQs on JSP/Servlets can be found at:
> > > > >
> > > > > http://archives.java.sun.com/jsp-interest.html
> > > > > http://java.sun.com/products/jsp/faq.html
> > > > > http://www.esperanto.org.nz/jsp/jspfaq.jsp
> > > > > http://www.jguru.com/faq/index.jsp
> > > > > http://www.jspinsider.com
> > > > >
> > > > >=============================================================
> > > > =============To
> > > > >unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
> > > > >JSP-INTEREST".
> > > > >For digest: mailto [EMAIL PROTECTED] with body: "set
> > JSP-INTEREST
> > > > >DIGEST".
> > > > >Some relevant FAQs on JSP/Servlets can be found at:
> > > > >
> > > > > http://archives.java.sun.com/jsp-interest.html
> > > > > http://java.sun.com/products/jsp/faq.html
> > > > > http://www.esperanto.org.nz/jsp/jspfaq.jsp
> > > > > http://www.jguru.com/faq/index.jsp
> > > > > http://www.jspinsider.com
> > > >
> > > >
> > > >
> > > >
> > > > -----------------------------------------------
> > > > Joseph B. Ottinger [EMAIL PROTECTED]
> > > > http://enigmastation.com IT Consultant
> > > >
>
===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST".
Some relevant FAQs on JSP/Servlets can be found at:
http://archives.java.sun.com/jsp-interest.html
http://java.sun.com/products/jsp/faq.html
http://www.esperanto.org.nz/jsp/jspfaq.jsp
http://www.jguru.com/faq/index.jsp
http://www.jspinsider.com