JSP在Debian中的错误处理机制
一 核心机制与配置
二 典型配置与代码示例
Error: <%= exception.getMessage() %>
Type: <%= exception.getClass().getName() %>
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
public class ErrorHandlingFilter implements Filter {
private static final Logger log = LoggerFactory.getLogger(ErrorHandlingFilter.class);
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
try { chain.doFilter(req, res); }
catch (Exception e) {
log.error("Unhandled error in filter chain", e);
HttpServletResponse httpRes = (HttpServletResponse) res;
httpRes.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Service unavailable");
}
}
public void init(FilterConfig cfg) {}
public void destroy() {}
}
<filter><filter-name>ErrorHandlingFilter</filter-name><filter-class>com.example.ErrorHandlingFilter</filter-class></filter>
<filter-mapping><filter-name>ErrorHandlingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
三 在Debian上的日志与问题定位
四 生产实践建议