Muthu vignesh k
Muthu vignesh k

Reputation: 237

No if hit count in spring mvc

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.

Upvotes: 1

Views: 1404

Answers (3)

Tejal
Tejal

Reputation: 814

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;
    }
}

Upvotes: 1

NikNik
NikNik

Reputation: 2301

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
  }

}

Upvotes: 0

Radhakrishna Pemmasani
Radhakrishna Pemmasani

Reputation: 766

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++;
        }
    }

}

Upvotes: 2

Related Questions