I had similar problems,
Problem 1: Internal server error.
If there is an non-null exception object in the error handler page, the error handler sets the response status as
SC_INTERNAL_SERVER_ERROR (5XX)
I looked at the generated jsp source code by Tomcat 5 to know this. I verified this by seeing the HTTP headers.
In older operating systems, the browser might not have handled this(a 5XX error) correctly. When it sees a 5XX, the browser might be throwing up.
When you set the isErrorPage="false", there is no "exception" implicit object.Hence, You dont see this message.
Problem 2. ${pageContext.exception} is empty while <%= exception %> works.
Looking at the Tomcat 5 jasper source code, this value is equal to the attribute, "javax.servlet.jsp.jspException"
Again from the code, I found that this attribute is set only if the jsp that throws the exception, has its
errorPage="xxxx" value set.
<%= exception %> works bcos it takes it source from another request attribute "javax.servlet.error.exception". This
attribute is always set irrespective of the errorPage value.