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