package com.matrix.core.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.MdcUtil; import com.matrix.core.tools.WebUtil; /** * 通用web请求拦截器 * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年11月29日 */ @Component public class WbeCommonInterceptor implements HandlerInterceptor { @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { } /** * 通用拦截器 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception { String ip = request.getHeader("X-Forwarded-For"); if (ip == null) { ip = request.getRemoteAddr(); } String userAgent = request.getHeader("User-Agent"); //设置本次请求的id MdcUtil.setRequestId(); LogUtil.info("#Begin Request# "+"["+WebUtil.getLocation()+"]"); LogUtil.info("#请求者IP为:{},User-Agent为:{}#", ip, userAgent); return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3) throws Exception { LogUtil.info("#Finshed Rquest# "+"["+WebUtil.getLocation()+"]"); //清除本次请求的id MdcUtil.clearRequestId(); } }