提交 7953c5fd 编写于 作者: J Juergen Hoeller

FrameworkServlet skips HttpServletResponse.getStatus() call on Servlet 2.5

Issue: SPR-12151
上级 86c3c7eb
......@@ -161,6 +161,11 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic
private static final String INIT_PARAM_DELIMITERS = ",; \t\n";
/** Checking for Servlet 3.0+ HttpServletResponse.getStatus() */
private static final boolean responseGetStatusAvailable =
ClassUtils.hasMethod(HttpServletResponse.class, "getStatus");
/** ServletContext attribute to find the WebApplicationContext in */
private String contextAttribute;
......@@ -1054,16 +1059,19 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic
}
}
private void publishRequestHandledEvent(HttpServletRequest request, HttpServletResponse response, long startTime, Throwable failureCause) {
private void publishRequestHandledEvent(
HttpServletRequest request, HttpServletResponse response, long startTime, Throwable failureCause) {
if (this.publishEvents) {
// Whether or not we succeeded, publish an event.
long processingTime = System.currentTimeMillis() - startTime;
int statusCode = (responseGetStatusAvailable ? response.getStatus() : -1);
this.webApplicationContext.publishEvent(
new ServletRequestHandledEvent(this,
request.getRequestURI(), request.getRemoteAddr(),
request.getMethod(), getServletConfig().getServletName(),
WebUtils.getSessionId(request), getUsernameForRequest(request),
processingTime, failureCause, response.getStatus()));
processingTime, failureCause, statusCode));
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册