springMVC的HandlerInterceptor拦截器

这里做的一个全局拦截器是用来向前端页面发送一个BasePath,就是jsp的那个basepath。因为当时项目用的是ftl作为前端模板,所以需要用到这个拦截器

/**
 * @author Beldon
 */
@Component
public class GlobalInterceptor implements HandlerInterceptor {
//Controller 方法调用之前执行
    public boolean preHandle(HttpServletRequest request, 
   HttpServletResponse response, Object handler) throws Exception {
        return true;
    }

//Controller 方法调用之后执行
    public void postHandle(HttpServletRequest request,
     HttpServletResponse response Object handler,
      ModelAndView modelAndView) throws Exception {
        if (null == modelAndView) {
            return;
        }
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
        //网站basePath
        modelAndView.addObject("BASE_PATH", basePath);
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {
        // TODO Auto-generated method stub

    }

}

使用拦截器需要在spring的配置文件中配置

<mvc:interceptors>
        <mvc:interceptor>
        <mvc:mapping path="/**"/>
          <bean class="gdut.ecms.interceptor.GlobalInterceptor"/>
        </mvc:interceptor>
</mvc:interceptors>

版权声明:本文为qq_17632417原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。