LogInterceptor implements HandlerInterceptor的作用
时间: 2023-12-30 19:22:48 浏览: 217
LogInterceptor实现了HandlerInterceptor接口,它的作用是在Spring MVC框架中拦截请求并记录日志。具体来说,它可以在请求处理之前、请求处理之后以及请求处理完成之后记录请求的URL、请求参数、响应结果等信息,方便开发人员进行调试和排错。
以下是LogInterceptor的三个方法的作用:
1. preHandle方法:在请求处理之前被调用,可以进行一些前置处理,比如记录请求开始时间。
2. postHandle方法:在请求处理之后、视图渲染之前被调用,可以进行一些后置处理,比如记录请求结束时间。
3. afterCompletion方法:在整个请求完成之后被调用,可以进行一些资源清理工作,比如关闭数据库连接。
下面是一个简单的LogInterceptor实现示例:
```java
public class LogInterceptor implements HandlerInterceptor {
private static final Logger logger = LoggerFactory.getLogger(LogInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("Request URL: {}", request.getRequestURL());
logger.info("Request Method: {}", request.getMethod());
logger.info("Request Parameters: {}", request.getParameterMap());
request.setAttribute("startTime", System.currentTimeMillis());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
long startTime = (long) request.getAttribute("startTime");
long endTime = System.currentTimeMillis();
long executeTime = endTime - startTime;
logger.info("Response Status: {}", response.getStatus());
logger.info("Response Time: {}ms", executeTime);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// do nothing
}
}
```
阅读全文