1.新建config包,创建拦截器类LoginInterceptor,实现HandlerInterceptor接口,重写preHandle方法
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object loginuser = request.getSession().getAttribute("login2");
if (loginuser==null){
request.setAttribute("msg","请先登录");
request.getRequestDispatcher("/login").forward(request,response);
return false;
}
System.out.println("拦截器放行!");
return true;
}
}
将username是否输入作为简单的判断条件,输入了username,且password为123456即可登录,
如果没有登录想直接进入首页 ,则触发上面的拦截器,并提示消息“请先登录”
@RequestMapping("/user/login")
public String login2(@RequestParam String username, @RequestParam String password, Model model, HttpSession session){
session.setAttribute("login2",username);
if (!StringUtils.isEmpty(username) && "123456".equals(password)){
System.out.println("进到这里了/user/login");
return "index";
}else {
model.addAttribute("msg","你的用户名或密码错误!");
return "login";
}
}
2.将配置类注入springboot,创建配置类MyConfig,实现WebMvcConfigurer
@Configuration
public class MyConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/*")
.excludePathPatterns("/login.html","/login","/user/login","/index.html");
}
}
addPatterns:添加拦截的路径,根据需求选择"/*"或"/**"
excludePathPatterns:要放行的页面与请求!!!是请求和页面!!!