1. 程式人生 > >Spring MVC 攔截器實現

Spring MVC 攔截器實現

vat direct sources tdi 不存在 資源 @override 默認 獲取

自定義攔截器類
public class SessionInterceptor extends HandlerInterceptorAdapter {

public SessionInterceptor() {
    // TODO Auto-generated constructor stub
}

private List<String> excludedUrls;

//通過屬性註冊不需要過濾的url list
public void setExcludedUrls(List<String> excludedUrls) {
    this.excludedUrls = excludedUrls;
}

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    throws Exception {

    String requestUrl = request.getRequestURI();
    //排除不需要過濾的URL
    for(String url:excludedUrls) {
        if(requestUrl.endsWith(url)) {
            return true;
        }
    }
    //獲取當前的會話session
    HttpSession session = request.getSession();
    if(session.getAttribute("userid") == null) {
        //若登錄session過期或不存在就跳轉到login頁面
        request.getRequestDispatcher("/login.jsp").forward(request, response);
        return false;
    }
    return true;
}

}
springmvc-servlet.xml 攔截器註冊

<mvc:interceptors>
<mvc:interceptor>

/login
HandlerInterceptorAdapter不能攔截WEB-INF目錄以外的jsp文件;若需攔截默認index.jsp;可以將index.jsp移動目錄到WEB-INF下即可;

Spring MVC 攔截器實現