Java Web項目里開發獲取上個頁面連接地址的問題


近期做的項目有個問題,就是需要獲取上個頁面連接地址,我用的IE瀏覽器,在用location.href連接到新地址的時候,在新地址頁面用document.referrer的方法獲取不到原地址,我測試了下,用的火狐和谷歌都行。有些IE版本可以,有些不支持,在老師的幫助下,在網上找到了解決方式。

這個是我的product-view.jsp頁面,我點擊結算時需要判斷有沒有用戶ID,如果沒有的話我就讓他先登錄,gotuurl()里的url是你去的目標頁面,這個方法創建了一個a標簽,然后自動觸發點擊事件去到目標頁面,

function goumai(userid,proid,proprice,number) {

alert("請先登錄!");

gotourl("/EBuy/login.jsp");

 

}

function gotourl(url){ 

var referLink = document.createElement('a');  

    referLink.href = url;  

    document.body.appendChild(referLink);  

    referLink.click();  

     }

這時的目標頁面login.jsp就可以拿到referrer了(上一個頁面地址);

  $(function(){

   var address=document.referrer;

   $("#yincang").attr("value",address);

  }

  )

 

然后登陸頁面又要轉到ServletLoginJudge頁面,剛好我的Login用的是表單提交我可以用隱藏域把上一個頁面的地址再傳遞到LoginJudge頁面,並加上判斷再返回原頁面。

 if(address!=""){

 response.sendRedirect(address);

 return;

 }

如果沒有表單驗證的話,那么Servletreferrer的方式是:

        String url= request.getHeader("Referer");

         System.out.println(url);

         String refer=url.substring(url.indexOf(request.getContextPath()));

        response.sendRedirect(refer);

因為此時還沒學異步提交,只有用這個笨方式了,當然Login頁面處理不好會有許多bug,比如你登陸失敗,或注冊失敗之后再輸入就算成功了,獲取的也還是這個頁面就不能跳轉了,判斷很麻煩。

測試的

Localtion.href<jsp:forward page="login.jsp"></jsp:forward>在一些IE瀏覽器里都不能傳遞referrer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM