springmvc 拦截器

/**
 * 用户登录拦截器
 * @author Administrator
 *
 */
public class LoginInterceptor implements HandlerInterceptor {
    
    /**
     * 前处理,执行 handler 之前执行此方法( handler 就是方法 )
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        //1.从 cookie 中取 token
            //判断 token 是否存在
        //2.如果没有 token,说明是未登录状态。跳转到 sso 系统登录页面。用户登录成功后,跳转到当前请求的 url
            //response.sendRedirect("http://localhost:8080/sso?redirec="+ request.getRequestURL());//不同的工程跳转,需要 redirect,将当前 url 传过去
        //3.如果取到 token,需要调用 sso 系统的服务,根据 token 取得用户信息
        //4.如果 sso 服务没取到用户信息。说明登录过期,跳转到 sso 系统登录页面。用户登录成功后,跳转到当前请求的 url 
        //5.如果 soo 服务取到用户信息。则把用户信息放入 request 中
        return true;
    }

    /**
     * handler 执行之后,返回 ModelAndView 之前 执行
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // TODO Auto-generated method stub
        
    }

    /**
     * 完成处理,返回 ModelAndView 之后 执行
     * 可以再次处理异常
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        
    }
    
}

 springMVC 配置文件

<!-- 拦截器配置 -->
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/><!--拦截所有请求-->
        <bean class="com.fw.LoginInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>
原文地址:https://www.cnblogs.com/fangwu/p/8728988.html