1. 程式人生 > >iframe和response.sendRedirect()跳轉到父頁面的問題----已解決

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;
		}