由於本人通過url帶引數轉頁面過程中發現:重新整理的時候頁面會重新實現這個過程,因此頁面效果展示及實現受到了影響。經過網上查閱相關知識,發現可以用token來解決這個問題。
上網查了一下,token是被稱為「令牌」的一種身份驗證方式,可以解決表單提交、頁面重新整理等問題,最簡單的token組成:uid(使用者唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,由token的前幾位+鹽以雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器)。
解決思路:
要想從a頁面跳到b頁面,保證b頁面重新整理時不會被重複提交且頁面返回到a重複跳到b頁面不會重複提交
在進入a頁面前,先在session裡面存入乙個token,並在request請求中存入token
在a頁面中,將request中的token放在表單隱藏域中或者url中
攔截a到b的url請求時,先拿到session中的stoken和url中的token,如果stoken存在並且跟token一致則表明是第一次跳轉至b頁面,此時把跳轉到b頁面和b頁面需要的引數存進session
如何stoken不存在則表明頁面出錯或者被關閉,如果stoken跟token不一致則表明頁面是重複重新整理,f5或者返回上一級再進來都有可能,這時可以從session中拿到之前存進來的資料,再次跳轉到b頁面即可
跳轉到a之前存session:
string token = uuid.randomuuid().tostring();
req.getsession().setattribute("token", token);
req.setattribute("token", token);
```a頁面防止request中的token
location.href="$/browser/seeorder?aid="+aid+"&commodityids="+commodityids
+"&numss="+nums+"&userid=<%=userid%>"+"&token=<%=request.getattribute("token")%>";
第一次跳轉到b頁面的邏輯
string stoken =(string) req.getsession().getattribute("token");
if(token!=null && token.equals(stoken))
重複跳轉時
else
當第一次跳轉進b頁面時,生成乙個隨機數並在頁面展示,如果不將這個隨機數存進session,f5重新整理或者返回上一級再進跳轉都會改變這個隨機數。因此,想要拿到原來的資料可以選擇存進session再拿取。
ps:新人寫部落格,有問題請多多指出。
頁面重定向erro miss
訪問頁面是時,出現如下錯誤 遇到這個問題,我先清除 cookies和快取,無效。然後 檢視 public void dofilter servletrequest servletrequest,servletresponse servletresponse,filterchain filtercha...
vue router重定向不重新整理問題的解決
前陣子太忙了,自己乙個人一邊開發著新專案,一邊維護著舊專案,沒時間寫部落格,終於讓我騰出時間了。廢話少說,開始正文。問題描述 之前專案是angular開發的,後來用vue重構後。專案路徑和vue路徑不一致,但是app端分享出的鏈結,依舊是舊專案鏈結。解決方法 通過閱讀vue router的官方文件,...
MVC頁面重定向 頁面跳轉
mvc頁面重定向,主要有以下幾種形式 1.response.redirect 方法 using system using system.collections.generic using system.linq using system.web using system.web.mvc namesp...