Interceptor.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.welampiot.interceptor;
  2. import com.alibaba.fastjson.JSON;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.web.servlet.HandlerInterceptor;
  6. import org.springframework.web.servlet.ModelAndView;
  7. import javax.servlet.ServletOutputStream;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import javax.xml.ws.RequestWrapper;
  11. import java.util.Map;
  12. public class Interceptor implements HandlerInterceptor {
  13. /**
  14. * 在请求处理之前进行调用(Controller方法调用之前)
  15. */
  16. @Override
  17. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
  18. // 记录请求参数日志
  19. if(request.getRequestURI().substring(0,4).equals("/api")){
  20. Logger paramLog = LoggerFactory.getLogger("param_log");
  21. Map<String, String[]> parameterMap = request.getParameterMap();
  22. paramLog.info(request.getRequestURI()+" ==request param== "+ JSON.toJSONString(parameterMap));
  23. }
  24. return true;//如果设置为false时,被请求时,拦截器执行到此处将不会继续操作
  25. }
  26. @Override
  27. public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
  28. HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
  29. ServletOutputStream outputStream = response.getOutputStream();
  30. }
  31. @Override
  32. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
  33. byte[] content = new byte[1024];
  34. //获取response的值
  35. // String responseData = IOUtils.toString(content, "UTF-8");
  36. System.out.println(content.toString());
  37. HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
  38. }
  39. }