成功嘗試上傳文件後,請求被轉發到他的主頁,即他上傳文件的相同頁面。如果上傳成功,在轉發請求之前,設置一個屬性,告訴「是,文件已經成功上傳!」。爲什麼警報箱會一次又一次顯示?
執行用戶主頁中的以下代碼,旨在檢查用戶是否被告知成功上載嘗試。如果用戶曾經以警告框的形式看到成功消息,下次他成功上傳另一個文件時應該看到成功消息。但在第一次嘗試重新加載/刷新頁面之後,我再次看到警告框告訴用戶成功上傳嘗試,即使我從請求列表中刪除了該屬性。
片段,一個全成文件上傳嘗試後顯示成功消息給用戶
<script>
window.onload = function() {
<% message = (String)request.getAttribute("SuccessMessage");
AttemptToUploadFile = (Boolean)request.getAttribute("UploadAttempt");
request.removeAttribute("SuccessMessage"); // Remove the attribute so that alert box doesn't pop every time the page is refreshed
if(message != null) {%>
alert("File successfully uploaded !");
<% } %>
}
</script>
爲什麼我一次又一次地看到警告框,即使我已經刪除了特定的屬性?
你能解釋你的意思嗎?「在瀏覽器刷新/重新加載頁面將導致原始HTTP請求數據重新發送到服務器,因此服務器將再次處理整個HTTP請求並再次設置請求屬性。「_。 **即**當遇到語句message =(String)request.getAttribute(「SuccessMessage」)時會發生什麼? – 2012-04-26 05:26:10
按下F5/Ctrl + R,最後執行的HTTP請求將被重新執行。所以,如果這涉及上傳文件,該文件將被重新發送。所以,該屬性將被重新設置。等等。 – BalusC 2012-04-26 05:27:25