1.需要些logininterceptor和webconfig两个类
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor extends HandlerInterceptorAdapter {
// 1. 继承HandlerInterceptorAdapter类
// 2. 重写preHandle方法
// 3. 指定拦截器使用的位置
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 当session中没有user对象时 则重定向 到 登录页面
if (request.getSession().getAttribute("user") == null) {
// 重定向
response.sendRedirect("/login/init_login");
return false;
}
return true;
}
}
webconfigure类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor((HandlerInterceptor) new LoginInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/page-register")
.excludePathPatterns("/login");
}
}
在这个类中可以设定你允许的路径