I have a servlet extending HttpServlet and implementing a GET request. I also use a filter (from an external library) which is mapped to the above servlet url. Now an exception is thrown by the filter, and as expected I get this 
SEVERE: Servlet.service() for servlet [myServlet] in context with path [] threw exception
I know error-page description is probably a standard way to catch this exception, but is there a way to catch the exception from a specific servlet filter ? I already have an error-page description and redirecting to a simple html page. I also don't want to redirect to a jsp page or so, and play around with error parameters. In short, my questions are :
error-page descriptor doesn't seem to have any fields to choose the servlet which throws an exception.Can you not extend the Filter and handle the exception thrown by super?
public class MyFilter extends CustomFilter{
        private static final Map<String, String> exceptionMap = new HashMap<>();
        public void init(FilterConfig config) throws ServletException {
              super.init(config);
              exceptionMap.put("/requestURL", "/redirectURL");
              exceptionMap.put("/someOtherrequestURL", "/someOtherredirectURL");
        }
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
           try{
                   super.doFilter(request, response, chain);
              }catch(Exception e)
                    //log
                    String errURL = exceptionMap.get(request.getRequestURI());
                    if(errURL != null){
                        response.sendRedirect(errURL);
                    }
              }
       }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With