Hi Julio,
Thanks for your response, however, it does not solve my problem to not print any
HTML (that's what I'm doing). The problem is in the line of code
out = pageContext.getOut();
As soon as you getOut(), even if you close it, you can't do a redirect or you
get the IllegalStateException!! :-( Once you've got the out, it's too late.
And there is, as far as I can tell (hopefully I'm wrong), no way to tell tomcat
NOT to generate a getOut() even if you never write anything to it in your JSP.
This line is *always* generated. Which is unfortunate.
Elisabeth
"Julio Serje (@Canada)" wrote:
> Elisabeth,
>
> Tomcat will compile your jsp page converting *any* HTML element into an
>
> out.println("<something>");
>
> So, if you don't write any HTML in yor servlet you can do what you want.
> The point is that problem is using the printwriter, not opening it. I
> tested this idea and created a jsp page that contains NO html at all, it
> looks like:
>
> <%out.close()%>
>
> and thats it, (even without a CRLF at the end of the line).
>
> It seems to work OK, nothing is output to the printwriter. I believe you can
> replace the line I wrote with your redirection, and that should work fine.
> Hope it helps..
>
> Julio Serje
> Calian Tech.
> Ottawa, Canada
>
> P.S. The complete java servlet that is generated from that jsp is :
>
> package jsp;
>
> import javax.servlet.*;
> import javax.servlet.http.*;
> import javax.servlet.jsp.*;
> import javax.servlet.jsp.tagext.*;
> import java.io.PrintWriter;
> import java.io.IOException;
> import java.io.FileInputStream;
> import java.io.ObjectInputStream;
> import java.util.Vector;
> import org.apache.jasper.runtime.*;
> import java.beans.*;
> import org.apache.jasper.JasperException;
>
> public class _0002fjsp_0002fno_0005fout_0002ejspno_0005fout_jsp_0 extends
> HttpJspBase {
>
> static {
> }
> public _0002fjsp_0002fno_0005fout_0002ejspno_0005fout_jsp_0( ) {
> }
>
> private static boolean _jspx_inited = false;
>
> public final void _jspx_init() throws JasperException {
> }
>
> public void _jspService(HttpServletRequest request, HttpServletResponse
> response)
> throws IOException, ServletException {
>
> JspFactory _jspxFactory = null;
> PageContext pageContext = null;
> HttpSession session = null;
> ServletContext application = null;
> ServletConfig config = null;
> JspWriter out = null;
> Object page = this;
> String _value = null;
> try {
>
> if (_jspx_inited == false) {
> _jspx_init();
> _jspx_inited = true;
> }
> _jspxFactory = JspFactory.getDefaultFactory();
> response.setContentType("text/html;charset=8859_1");
> pageContext = _jspxFactory.getPageContext(this, request,
> response,
> "", true, 8192, true);
>
> application = pageContext.getServletContext();
> config = pageContext.getServletConfig();
> session = pageContext.getSession();
> out = pageContext.getOut();
>
> // begin [file="C:\\jsp\\no_out.jsp";from=(0,2);to=(0,15)]
> out.close();
> // end
>
> } catch (Exception ex) {
> if (out.getBufferSize() != 0)
> out.clearBuffer();
> pageContext.handlePageException(ex);
> } finally {
> out.flush();
> _jspxFactory.releasePageContext(pageContext);
> }
> }
> }
>
> ----- Original Message -----
> From: Elisabeth Freeman <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, October 25, 2000 1:37 PM
> Subject: RE: tomcat-user Digest 24 Oct 2000 20:53:09 -0000 Issue 293
>
> > I agree, doing this with a servlet is the right way to go. However,
> because
> > this is already in production, it would be much simpler to change the jsp
> > than add a servlet at this point (which would require QA, updating the
> > server properties, etc.).
> >
> > I have searched everywhere and can't find anything about telling tomcat
> not
> > to open the print writer. I'm assuming it can't be done, however, if this
> > is wrong, please let me know.
> >
> > Thanks.
> >
> > Elisabeth Freeman
> >
> > -----Original Message-----
> > Date: Tue, 24 Oct 2000 14:27:43 -0500
> > To: [EMAIL PROTECTED]
> > From: William Brogden <[EMAIL PROTECTED]>
> > Subject: Re: help with generated servlet and IllegalStateException
> > Message-ID: <[EMAIL PROTECTED]>
> >
> > Elisabeth Freeman wrote:
> > >
> > > Hi,
> > > I have noticed that the servlets being generated from my JSPs *always*
> > grap
> > > the PrintWriter "out", even if I am not using it in my JSP. This causes
> > > serious problems when I want to redirect - I get an
> IllegalStateException
> > > which seems to hang the thread in my application, so after a few hundred
> > > hits, the application is dying (on Windows NT, doens't seem to happen on
> > > Windows 2K). Is there any way for me to direct Jasper *not* to get the
> > > print writer at all in the generated servlet?
> > >
> > > Thanks!!!
> > >
> > > Elisabeth Freeman
> >
> > If you are not going to be writing any HTML, why bother with JSP?
> > Why not do whatever it is you are doing with a servlet?
> >
> > --
> > WBB - [EMAIL PROTECTED] Chief Scientist, LANWrights, Inc.
> > Java Programmer Certification information and mock exam
> > at http://www.lanw.com/java/javacert/
> >
> > ------------------------------
> >
> >