2018-03-06 spring boot 攔截器

最近在做一個(gè)養(yǎng)老院的項(xiàng)目,自己做的攔截器,希望能幫助上大家??

下面直接把代碼粘出來。

首先先新建一個(gè)CustomWebMvcConfigurerAdapter? 類

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration

public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {

@Override

? ? public void addInterceptors(InterceptorRegistry registry) {

? ? ? ? registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/login/**");? //對(duì)來自/user/** 這個(gè)鏈接來的請(qǐng)求進(jìn)行攔截

? ? ? // super.addInterceptors(registry);

? ? }

}


再寫一個(gè)LoginInterceptor類,對(duì)每次請(qǐng)求的接口進(jìn)行判斷,三次判斷

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

public class LoginInterceptor implements HandlerInterceptor {

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

String string = request.getRequestURL().toString();

System.out.println("請(qǐng)求url:"+string);

String uri = request.getRequestURL().toString();

if (uri.contains("login")) {

return true;

}

// a)攔截用戶請(qǐng)求,判斷用戶是否登錄

HttpSession session = request.getSession();

Object username = session.getAttribute("username");

if (username != null) {

// b)如果用戶已經(jīng)登錄。放行

return true;

}

// c)如果用戶未登錄,跳轉(zhuǎn)到登錄頁面。

System.out.println("session用戶過期跳轉(zhuǎn)登錄頁面!");

response.sendRedirect(request.getContextPath() + "/controller/login");

return false;

}

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

//handle執(zhí)行之后,返回ModelAndView之前。

//System.out.println("Interceptor1 postHandle......handle執(zhí)行之后,返回ModelAndView之前。");

}

@Override

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception {

// 返回ModelAndView之后。

//可以在此處理異常

//System.out.println("Interceptor1 afterCompletion......返回ModelAndView之后, 在此處理異常");

}

希望幫助上大家,第一次發(fā)自己寫的東西,多多支持。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容