最近现网遇到一个问题,前端调用后台接口传入数据,同时前端为了友好性,设置了接口的响应时间,响应超时就会给用户提示,就会出现有时候网络问题,后端没有及时响应,前端给用户提示了网络超时,导致用户重复操作,就会产生重复的数据操作,
针对这类问题,一般有以下几种解决方案:
1、前端按钮设置disable,置灰,仅仅是防止重复点击,无法解决上述问题;
2、前端不设置响应时间,这种影响用户体验;
3、后端针对同一个用户的同一个请求进行参数校验,相同参数一分钟内不允许重复提交,
针对第三种方案,实现策略如下:
一是自定义拦截器,拦截所有接口,具体实现如下:
首先自定义拦截器类,
public class ParamInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
/**