需要掌握:springmvc拦截器
需求
记录每次访问的的源地址、浏览器信息、访问的链接、开始时间、结束时间、消耗时间等
分析
经过分析这些信息应该在controller中即可实现,但是又不想写在每个controller中,否则侵入代码太多,所以通过springmvc的拦截器来实现
JAVA代码
public class LogInterceptor implements HandlerInterceptor {
private long startTime=0;
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
startTime=System.currentTimeMillis();
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
String ua=httpServletRequest.getHeader("user-agent");
String ip=httpServletRequest.getRemoteAddr();
String url=httpServletRequest.getRequestURL().toString();
long time=System.currentTimeMillis()-startTime;
//剩下代码记录日志,略
System.out.println();
}
}
XML配置
实现拦截器类后,还需要配置到xml配置文件中,才能起作用
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.jsoft.interceptor.LogInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>