当session失效后,用户点击当前页面会跳到登录页面,如果用户现在是在子页面,则当前的子页面跳到登录,用户感觉很不好,所以进行处理,例得无论点击那个页面,都找到顶端页面,再跳到登录页面。
处理的方式很简单,在登录的JSP页面,增加下面的方法,在body的onload事件中加载这个方法。
function refreshTop(){
var currentHref="${pageContext.request.contextPath}/login-form.jsp?requestPath=index.jsp";
var parentPage=window.parent;
var currentPage=window;
var topPage;
while(parentPage!=currentPage){
topPage=parentPage;
currentPage=parentPage;
parentPage=parentPage.parent;
}
if(topPage){
topPage.location.href=currentHref;
}
}
技术点:判断当前的页面是否有父页面,如果用if(window.parent)结果永远是true,也就是当前页面的parent永远是true, 正确的判断方式是 if(window.parent!=window)