1

Am new to Spring MVC and my task is need to count every hit in spring MVC. Am able to achieve this in Servlet. But no idea how to achieve this in spring. Is there any way to track every request?. Thanks in advance.

Muthu vignesh k
  • 237
  • 1
  • 4
  • 19

3 Answers3

2

Try an interceptor like this

public class RequesInterceptor extends HandlerInterceptorAdapter {
    private static Object lock = new Object();
    private static int count =  0

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
        synchronize(lock){
            count++;
        }
    }

}
Abdullah Khan
  • 12,010
  • 6
  • 65
  • 78
1

try following code

1)Using synchronized static method.

    public class RequestProcessingInterceptor extends HandlerInterceptorAdapter {

        private static int count = 0;

        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            incrementCount();
            return true;
        }

        public static synchronized void incrementCount() {
            count++;
            System.out.println("[requestCount]" + count);
        }
}

2)using AtomicInteger

    public class RequestProcessingInterceptor extends HandlerInterceptorAdapter {

    private final static AtomicInteger count = new AtomicInteger(0);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {

        count.incrementAndGet();

        System.out.println("[---count---]" + count);

        return true;
    }
}
Tejal
  • 764
  • 1
  • 10
  • 39
0

As other people said, you should use Interceptor:

1) In uour dispatcher-servlet.xml add:

<mvc:interceptor>
  <mvc:mapping path="/**" />
  <bean class="xx.xx.xx.handlers.ViewInterceptor" />
</mvc:interceptor>

2) Interceptor java code:

@Service
public class ViewInterceptor extends HandlerInterceptorAdapter{
      @Override
      public boolean preHandle(HttpServletRequest request, HttpServletResponse 
            response, Object handler) throws Exception {
      ... do some  pre stuff
  }

  public void postHandle(HttpServletRequest request, 
                        HttpServletResponse response, 
                        Object handler, 
                        ModelAndView model) throws Exception {
  ... do some post stuff
  }

}

NikNik
  • 2,191
  • 2
  • 15
  • 34