iframe和response.sendRedirect()跳轉到父頁面的問題----已解決
阿新 • • 發佈:2019-01-07
在專案中,因為為了給頁面分層次,就使用了 內嵌iframe 的分了三個框。在子頁面進行操作的時候,如果session超時,就要被攔截器攔截重新回到首頁進行登入,但是在sub頁
面 ,進行操作的時候,如果session超時,需要跳轉到首頁進行登入的話,首頁的頁面就嵌在sub頁面進行顯示 了,這樣顯然是不符合邏輯了,應該是跳回到最頂層的父頁面.
錯誤的程式碼如下:
HttpSession session = request.getSession(); Object obj = session.getAttribute(Constant.LOGIN_USER); if (obj == null) { response.sendRedirect(request.getContextPath() + "/index.jsp"); return false; }
因為response.sendRedirect()沒有target屬性,但html頁面和js中有,於是,當判斷出使用者沒有訪問許可權時,我們可以在jsp中使用js來轉向到真正的登入頁面。
正確跳轉到父頁面的程式碼:
HttpSession session = request.getSession(); Object obj = session.getAttribute(Constant.LOGIN_USER); if (obj == null) { PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<script>"); out.println("window.open ('"+request.getContextPath()+"/index.html','_top')"); out.println("</script>"); out.println("</html>"); return false; }