In a nutshell, once you forward you should ensure nothing else is sent to the 
output. Similarly once you start outputing a page, don't change your mind and 
forward.

Thus your code should look something like this:

        if (errorMessage != null) {
            response.sendRedirect (request.getContextPath() + 
"/someotherpage.jsp")  ;
            return;
        }
        out.println ("<html>");
        ...

Not like this:
        if (errorMessage != null) {
            response.sendRedirect (request.getContextPath() + 
"/someotherpage.jsp")  ;
        }

        out.println ("<html>");
        ...

This is a common mistake.

I suspect that you are doing the reverse with the exception you are getting. 
That is you are doing this:
        out.println ("<html>");
        ...
        if (somethingBadHasHappened) {
            errorMessage = "Uh Oh, something bad has happened.";
        }
        ...
        if (errorMessage != null) {
            response.sendRedirect (request.getContextPath() + 
"/someotherpage.jsp")  ;
        }

As for documentation, there are a great many titles on Servlets at the local 
book store. Also try searching the web there are plenty of tutorials and 
samples out there.

I hope this helps

Glenn Mc



----- Original Message ----- 
From: "Deepa Paranjpe" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Thursday, August 30, 2007 10:01 AM
Subject: Java servlets


> Hi all, 
> 
> This is not a question specific to tomcat but more about servlets. 
> I am using a dispatcher forward to invoke another servlet. 
> Why do I get an exception --> java.lang.IllegalStateException: Cannot forward 
> after response has been committed
> 
> For some reason I am unable to find good documentation to do complicated 
> servlets invocations. Does any one know?
> 
> 
> 
> Ole Ersoy <[EMAIL PROTECTED]> wrote:Incidentally - since we are talking about 
> pooling - should the executor configuration be a tip? It allows the 
> connectors to share a single thread pool, rather than each connector having 
> its own. This seems like a memory and performance slurpee to me.
> 
> Cheers,
> - Ole
> 

Reply via email to