ich ein Servlet api, wo ich verwenden, um meine eigenen Ausnahmen von Servlets Ebene zu werfenException-Handler arbeitet für doGet(), aber nicht für doPost()
Wenn ich Ausnahme von doGet Methode funktioniert alles einwandfrei und Exception-Handler werfen Fänge und verarbeitet meine Ausnahme. Das Problem tritt auf, wenn ich die Ausnahme von der doPost-Methode ausleite. in diesem Fall leider nicht sehen Fehlerseite Ich
nieweb.xml
<error-page>
<exception-type>java.lang.Throwable</exception-type >
<location>/ErrorHandler</location>
</error-page>
Exception-Handler
@WebServlet("/ErrorHandler")
public class ErrorHandler extends HttpServlet {
private final Logger logger;
public ErrorHandler() {
logger = Logger.getLogger(ErrorHandler.class);
}
@Override
public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
Throwable throwable = (Throwable) httpServletRequest.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
logger.error("occurred exception: ", throwable);
httpServletRequest.getRequestDispatcher("/error.jsp").forward(httpServletRequest, httpServletResponse);
}
}
Servlets
@Override
public void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
throw new UserException("error message");
}