简体   繁体   中英

How to redirect to error page in servlet?

I am writing the servlet , in case of exception I am redirecting to my customized error page for that i have done like this.

In web.xml

<error-page>
  <exception-type>java.lang.Exception</exception-type>
  <location>/WEB-INF/jsp/ErrorPage.jsp</location>
</error-page>

In Servlet,

protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
try{
       //Here is all code stuff
       Throw new Exception();
}catch(Exception e){

         e1.printStackTrace();

}

But here ErrorPage.jsp is not displaying , where I am going wrong can anyone explain me?

You're catching the exception, and only printing the stacktrace inside, so the error-page doesn't take affect, remove the try-catch or re-throw and it will work. In addition, you have some syntax errors. Try something like

try{
       //Here is all code stuff
       throw new Exception();
}catch(Exception e){
         e.printStackTrace();
         throw new ServletException();
}

The problem is that you catch the Exception and therefore no Exception will leave your doPost() method. You will only be redirected error page if an Exception matching the <exception-type> (either identical or a subclass of it) leaves your doPost() method.

You should rethrow the Exception bundled in a RuntimeException for example:

} catch(Exception e) {
    e1.printStackTrace();
    throw new RuntimeException(e);
}

Unfortunately if we're talking about a general Exception you can't just not catch it because doPost() is declared to only throw instances of ServletException or IOException . You are allowed not to catch those, but java.lang.Exception must be caught.

You have handled the Exception in your doPost() using ,

try{
       //Here is all code stuff
       Throw new Exception();
}catch(Exception e){
         e1.printStackTrace();    
}

try and catch blocks. so the errorPage.jsp will not be invoked. <error-page> is invoked for unhandled exceptions

A nice example tutorial Exception Handling

Read for more info Best practice error handling in JSP Servlets

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM