现状做的一个练手项目,根据慕课网的仿大众点评源码自己修改的,使用session拦截器+auth拦截器。
之前用的Chrome浏览器,遇到的问题:登录后台,加载完菜单后,点进每一个子菜单都被踢回到login,打断点总是发现session被莫名其妙的清掉,期初以为是session拦截器出了问题,但源码基本没动呀,该不会有坑?
/**
* session拦截器
*/
public class SessionInterceptor implements HandlerInterceptor {
/**
* 在进入Handler方法执行之前执行本方法
*
* @return true:执行下一个拦截器,直到所有拦截器都执行完,再执行被拦截的Controller
* false:从当前的拦截器往回执行所有拦截器的afterCompletion(),再退出拦截器链
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//这里的用户信息在加载完菜单后就变成了null
System.out.println(request.getSession().getAttribute(SessionKeyConst.USER_INFO));
if (request.getSession().getAttribute(SessionKeyConst.USER_INFO) != null) {
return true;
}
// 针对ajax请求处理
if (request.getHeader("x-requested-with") != null) {
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();