判断是否登录,登录则放行。没登录则重定向登录界面。
创建拦截器
AccessInterceptor.java
public class AccessInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//登录权限拦截器: 从Session中检查用户的登录状态,如果登录就放行
//如果没登录就跳转登录页
//取出用户信息
String loginuser = (String)request.getSession().getAttribute("loginuser");
System.out.println("当前用户"+loginuser);
if(loginuser == null){
//session中没有登录用户信息,当前用户还没登录
//发起重定向,跳转登录页面
System.out.println("没放行");
String path = request.getContextPath()+"/user/login.do";
response.sendRedirect(path);
//返回false拦截
return false;
}
System.out.println("已经登录,放行");
return true;
}
}
添加拦截器到界面
@Override
public void addInterceptors(InterceptorRegistry registry) {
//创建DemoInterceptor对象,注册到SpringMVC中
//addPathPatterns()方法到作用是约定拦截器到URL
//注册一个拦截器,在请求/home/index.do时候执行拦截器到功能
registry.addInterceptor(new DemoInterceptor()).addPathPatterns("/home/index.do");
registry.addInterceptor(new AccessInterceptor()).addPathPatterns("/home/index.do");
}