最近在做一個(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ā)自己寫的東西,多多支持。