天天看點

iframe和response.sendRedirect()跳轉到父頁面的問題----已解決

在項目中,因為為了給頁面分層次,就使用了 内嵌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;
		}
           

繼續閱讀