1.controller
@RequestMapping("/isLogin")
public ModelAndView isLogin(RedirectAttributes attributes,HttpSession session, User user, ModelAndView mv){
//此处为了方便,直接判断密码是否为12345,是的话就判定为登录成功
if (!user.getPassword().equals("12345")){
System.out.println(user);
mv.addObject("al",true);
mv.setViewName("redirect:/Login");
return mv;
}
System.out.println(user.toString());
System.out.println("登录成功");
session.setAttribute("username","new");
attributes.addAttribute("al",true);
attributes.addAttribute("msg","登录成功");
mv.setViewName("redirect:index");
return mv;
}
2.config
@Configuration
public class LoginWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**") //拦截所有的请求包括动态资源和静态资源
.excludePathPatterns("/","/Login","index","/isLogin","/toupload",
"/getFile/**",
"/assets/**","/eCommerce Doc/**"); //释放需要的请求
}
}
3.interceptor
//登录拦截器
public class Loginlnterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
Object username = session.getAttribute("admin");
if (username!=null){
System.out.println("username="+username);
return true;
}
//跳到主界面
request.getRequestDispatcher("/").forward(request,response);
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}