In "MyServlet.java" it invokes some classes which throws out some special exceptions that can be caught in "MyServlet.java". Then some customized exception (subclass of ServletException) is thrown from "Myservlet.java"'s doGet() and doPost() method. Eventually "MyServlet.java" does "forward(req, res)" to send results to "My.jsp" page, I try to catch ALL the exception in "My.jsp" using "errorpage = ..". But, it seems once the "MyServlet.java" finds any error it goes to a server 500 default page without goes to my special jsp error page. Is it because the exception happened BEFORE the "forward()" ? If so, then how could I make it go to the jsp's special error page ? Thanks, Ian
Yes it is. The error page is specified in the JSP and if you haven't yet gone to the JSP, there's simply no way to know what the error page even was. I don't know if explicitly forwarding to an error page is supported. There's some additional context that has to be provided that ordinary JSP's don't have. However you could provide an ordinary JSP, wrap the doGet/doPost code in a try-catch block and have the catch code forward to that page.
Sometimes the only way things ever got fixed is because people became uncomfortable.