2011-09-14 91 views
0

我是新來的jsp/ajax,你可以看到。
在上傳網頁的jsp/ajax文件中,POST用於上傳文件,GET用於獲取上傳進度(使用ajax)。

在doPost()文件上傳中(它應該在服務器端「下載」)完成並設置進度監聽器。

在doGet()響應中XML是wriitten(ajax HttpRequest是GET)。
在doPost()中寫入響應的HTML標記未顯示在瀏覽器中.Redirection在doPost()中也不起作用。
我不能在doGet()中執行以上任何操作,因爲它在ajax中被多次調用。不是嗎?
如果我想在不同的頁面顯示上傳文件的內容(比如文本文件),我該怎麼做? (我的意思是在哪種方法應該重定向發生?)

我目前正在做的是在ajax,如果進度是100%,打開顯示文件內容的頁面使用window.open() 可以任何人都請解釋進行中的過程(序列)。
其實這是我接下來的代碼被寫入響應中的doPost()
ajax file uploading progress同時使用GET和POST

+1

請參閱有關健談/開放式問題的常見問題,並考慮修改爲單個具體問題。 – danorton

回答

2

HTML標籤不會在瀏覽器中顯示

也許你需要先刷新響應緩衝區?然而,這與重定向不起作用的聲明相沖突。也許你的意思是僅顯示少數HTML標記,而不是全部?


重定向也沒有的doPost()

工作這的確會失敗,並在服務器日誌IllegalStateException: response already committed(你讀?)如果你寫和沖洗HTML標記預先做出迴應。


如果我要顯示上傳的文件在不同的網頁內容(比如文本文件),我應該怎麼辦?

doPost()調用response.sendRedirect()之前什麼反應。讓ajax和doGet()擔心處理你之前討論的那些「HTML標籤」。

在相關的說明,你可能會發現這個答案有趣:HTML5 File Upload to Java Servlet

+0

謝謝you.seems我需要花費相當多的時間來學習這些東西。它是如何發生的?1-點擊提交按鈕後doPost()方法被調用.2-在doPost()文件正在被下載。而doGet()被稱爲多次,並且響應XML被讀取.4-在文件被上傳之後,執行doPost()的最後(底部)的任何代碼。在eclipse中的TCP/IP監視器中,瀏覽器似乎是說進度百分比爲100的XML。我的意思是HTML標記是doPost()底部的輸出,然後我嘗試用response.sendRedirect()替換它。 – Dinushan