spring boot 攔截器實現防重複提交
阿新 • • 發佈:2019-01-24
public class WeiguUrlInterceptor implements HandlerInterceptor {
public WeiguUrlInterceptor(){
}
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if(request.getRequestURI().equals("/checkorder")||request.getRequestURI().contains("payOrderFailList")||request.getRequestURI().contains("zichanorder")){
return false;
}
String token =request.getParameter("token");
System.out.println("token::::"+token);
boolean repeatsubmit=isRepeatSubmit(request);
if(!repeatsubmit){
request.getSession(false).removeAttribute("token");
}
return !repeatsubmit;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
/*if(modelAndView == null){
modelAndView = new ModelAndView("error");
throw new Exception("not find this path!!!!!");
}
System.out.println("-------------- TestUrlInterceptor post url -----------------" + modelAndView.getViewName());*/
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
if(ex != null){
}
}
private boolean isRepeatSubmit(HttpServletRequest request) {
try{
System.out.println("session:"+request.getSession(false));
String serverToken = request.getSession(false).getAttribute("token")+"";
if (serverToken == null) {
return true;
}
String clinetToken = request.getParameter("token");
if (clinetToken == null) {
return true;
}
if (!serverToken.equals(clinetToken)) {
return true;
}
}catch(Exception e){
System.out.println("isRepeatSubmit error");
return true;
}
return false;
}
}
public WeiguUrlInterceptor(){
}
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if(request.getRequestURI().equals("/checkorder")||request.getRequestURI().contains("payOrderFailList")||request.getRequestURI().contains("zichanorder")){
return false;
}
String token =request.getParameter("token");
System.out.println("token::::"+token);
boolean repeatsubmit=isRepeatSubmit(request);
if(!repeatsubmit){
request.getSession(false).removeAttribute("token");
}
return !repeatsubmit;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
/*if(modelAndView == null){
modelAndView = new ModelAndView("error");
throw new Exception("not find this path!!!!!");
}
System.out.println("-------------- TestUrlInterceptor post url -----------------" + modelAndView.getViewName());*/
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
if(ex != null){
}
}
private boolean isRepeatSubmit(HttpServletRequest request) {
try{
System.out.println("session:"+request.getSession(false));
String serverToken = request.getSession(false).getAttribute("token")+"";
if (serverToken == null) {
return true;
}
String clinetToken = request.getParameter("token");
if (clinetToken == null) {
return true;
}
if (!serverToken.equals(clinetToken)) {
return true;
}
}catch(Exception e){
System.out.println("isRepeatSubmit error");
return true;
}
return false;
}
}