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/
> >
> > ------------------------------
> >
> >

Reply via email to