创建两个包 config intercepter
config 包下写拦截器注入适配器(拦截的方法)
下面展示适配器
@Configuration
public class lanjie implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new UserInter())
.addPathPatterns("/**")//拦截所有的路径
.excludePathPatterns("gly");//不拦截的
}
}
intercepter 自定义拦截器
下面展示拦截器
public class UserInter implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler ,HttpSession session) throws IOException {
Object user = session.getAttribute("admin");//这是拦截器判断
if (null==user){
response.sendRedirect(request.getContextPath()+"/error");
return false;
}
return true;
}
代码所名:
取session是否为空判断登录成功
controller层
默认登录页面
@Controller
public class a {
@GetMapping(value = "/gly")
public String show() {
return "admin/loginPage";
}
}
判断是否登录成功
@Controller
public class LoginController {
@Resource
private AdminService adminService;
@RequestMapping("deng")
public String show(Model model, admin dmin,HttpSession session){
if(null!=dmin.getAdminName()&&""!=dmin.getAdminName()){
admin
//这里admin的值不能直接存储到session,此空非彼空
admin=adminService.getAdminByName(dmin.getAdminName(),dmin.getAdminPassword());
if(null!=admin){
model.addAttribute("admin",admin);
session.setAttribute("admin",admin);
return "admin/homeManagePage";
}
}
return "admin/loginPage";
}
}