use*_*622 5 java servlets exception-handling exception servlet-filters
我有一个扩展HttpServlet和实现GET请求的servlet .我还使用了一个过滤器(来自外部库),它被映射到上面的servlet url.现在,过滤器抛出异常,正如预期的那样,我得到了这个
严重:servlet [myServlet]的Servlet.service()与path []的上下文引发了异常
我知道error-page描述可能是捕获此异常的标准方法,但有没有办法从特定的servlet过滤器中捕获异常?我已经有了error-page描述并重定向到一个简单的html页面.我也不想重定向到jsp页面左右,并使用错误参数.简而言之,我的问题是:
error-page描述似乎没有任何字段选择哪抛出异常的servlet.你能不扩展Filter并处理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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9982 次 |
| 最近记录: |