基于Filter,web异常(404)统一跳转页面

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Define interceptor
 * @see
 * @date 2019-04-27 15:40
 * @version V1.0.0
 **/
@Component
public class VueRouteInterceptor implements HandlerInterceptor {

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

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
        if (response.getStatus() == HttpServletResponse.SC_NOT_FOUND) {
            //将状态码置为200,不然状态码依然是404
            response.setStatus(HttpServletResponse.SC_OK);
            //加载vue的index.html
            if (modelAndView != null){
                modelAndView.setViewName("/index.html");
            }
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
    }
}
posted @ 2020-01-14 18:11  乐此不皮  阅读(505)  评论(0)    收藏  举报