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.
Asked
Active
Viewed 1,376 times
3 Answers
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

Radhakrishna Pemmasani
- 766
- 6
- 16
-
may be it's better to use smth like `AtomicLong` ? – dehasi Nov 07 '17 at 08:50
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