springmvc通过拦截器记录访问日志

需要掌握: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>

原文出处:/show_1EFE3ahx0m1.html