tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Elisabeth Freeman <Elisabeth.Free...@dig.com>
Subject Re: tomcat-user Digest 24 Oct 2000 20:53:09 -0000 Issue 293
Date Thu, 26 Oct 2000 03:24:53 GMT
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 <elisabeth.freeman@corp.go.com>
> To: <tomcat-user@jakarta.apache.org>
> 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: tomcat-user@jakarta.apache.org
> > From: William Brogden <wbrogden@bga.com>
> > Subject: Re: help with generated servlet and IllegalStateException
> > Message-ID: <39F5E2AF.5BB61C22@bga.com>
> >
> > 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 - wbrogden@bga.com  Chief Scientist, LANWrights, Inc.
> > Java Programmer Certification information and mock exam
> > at  http://www.lanw.com/java/javacert/
> >
> > ------------------------------
> >
> >


Mime
View raw message