import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
* @ClassName 类名 : LoginInterceptor
* @Description 作用 : 登录的拦截器
*/
public class LoginInterceptor implements HandlerInterceptor {
/**
* Handler执行之前调用这个方法
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// 获取请求的URL
String url = request.getRequestURI();
String queryString = request.getQueryString();
// 获取session
HttpSession session = request.getSession();
// 当URL以/user开头时,代表链接需要登录才可以打开
if (url != null && url.indexOf("/user") == 0) {
// 获取Session
String username = (String) session.getAttribute("username");
if(null != queryString && !"".equals(queryString)){
url = url + "?" + queryString;
}
if (username == null || username == "") {
// 记录初始的路径
session.setAttribute("targetUrl", url);
// 重定向到登录页面
response.sendRedirect("/page/login.html");
return false;
}
}
return true;
}
/**
* Handler执行完成之后调用这个方法
*/
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e)
throws Exception {
}
/**
* Handler执行之后,ModelAndView返回之前调用这个方法
*/
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView model)
throws Exception {
}
}
【笔记】登录拦截器
猜你喜欢
转载自blog.csdn.net/jul_11th/article/details/79717726
今日推荐
周排行