J2EE基礎篇:Struts的幾個精細之處詳解
關鍵字:J2EE Struts精細之處一:“利用Token解決重復提交”背后的前提 我們知道,可以利用同步令牌(Token)機制來解決Web應用中重復提交的問題,Struts也給出了一個參考實現。 服務器 端在處理到達的請求之前,會將請求中包含的令牌值與保存在當前用戶會話
關鍵字:J2EE Struts精細之處一:“利用Token解決重復提交”背后的前提
我們知道,可以利用同步令牌(Token)機制來解決Web應用中重復提交的問題,Struts也給出了一個參考實現。
服務器端在處理到達的請求之前,會將請求中包含的令牌值與保存在當前用戶會話中的令牌值進行比較,看是否匹配。在處理完該請求后,且在答復發送給客戶端之前,將會產生一個新的令牌,該令牌除傳給客戶端以外,也會將用戶會話中保存的舊的令牌進行替換。這樣如果用戶回退到剛才的提交頁面并再次提交的話,客戶端傳過來的令牌就和服務器端的令牌不一致,從而有效地防止了重復提交的發生。對應于這段描述,你可能會在你的Action子類中有這么一段代碼:
if (isTokenValid(request, true))
{
// your code herereturn mapping.findForward("su
clearcase/" target="_blank" >ccess");
} else
{
saveToken(request);
return mapping.findForward("submitagain");
}
原文轉自:http://www.anti-gravitydesign.com