問題背景:
做電商專案,有些操作需要登入才能進行,乙個url被session過濾器攔截後,被鏈結到登入介面,輸入賬號、密碼等資訊後,登入成功,還需回到使用者請求的url,並且需要此url攜帶登入前的引數
1、session過濾器獲取引數
//獲取使用者請求的url
string pathinfo = request.getrequesturi();
//獲取url攜帶的引數
stringbuffer params=new stringbuffer();
mapmap = request.getparametermap();
set> set = map.entryset();
iterator> it = set
.iterator();
while (it.hasnext())
} request.getsession().setattribute("redirecturl", pathinfo.substring(pathinfo.indexof(request.getcontextpath())+request.getcontextpath().length()));
request.getsession().setattribute("params", params.tostring());
response.sendredirect(request.getcontextpath()+"/member/login.html")
2、登入成功後,回到url,並攜帶引數
方法一:用modelandview傳遞引數
方法二:用redirectattributes傳遞引數
//回到使用者請求的url
return
"redirect:"+redirecturl;
}
SpringMVC重定向傳遞引數
閱讀spring實戰 第四版 看到了跨重定向請求傳遞資料,做了筆記,以備不時之需。public string reqstrs model model 瀏覽器位址顯示 使用佔位符填充到url模版中,而非直接連線到重定向string中,這樣更加安全。public string reqstrsflash ...
spring mvc 重定向時引數傳遞
實現登入後跳轉到登入前頁面時,發現用model.addattribute 再redirect,跳轉後url會附上引數。如 model.addattribute msg 使用者名稱或密碼錯誤 跳轉後會是 位址?msg 使用者名稱或密碼錯誤 若想去掉,可以使用redirectattributes的add...
SpringMVC 跨重定向請求傳遞資料的方法實現
執行完post請求後,通常來講乙個最佳實踐就是執行重定向。重定向將丟棄原始請求資料,原始請求中的模型資料和請求都會消亡。可以有效避免使用者瀏覽器重新整理或者後退等操作,直接間接地重複執行已經完成的post請求。在控制方法中返回的檢視名稱中,在string前使用 redirect 字首,那麼這個str...