2009-05-22 50 views
2

終止不返回任何數據到客戶端的servlet的正確方法是什麼?沒有「返回任何東西」的servlet的正確語法?

有問題的servlet的目的是從Ajax請求中收集一些數據並將TCP消息發送到一個硬件,告訴它改變它的狀態。

您是否必須指定響應?

我選擇了獲取對輸出流的引用並關閉它,這是正確的嗎?

我應該發回一個「嘿,工作」的消息?

回答

2

您的servlet將發送帶有狀態碼的響應標頭,在任何情況下都不會發生,我不明白爲什麼您應該輸出任何內容。 :)

2

在這種情況下,我通常會返回一個成功的消息,即像(以JSON)

{ success: true } 

我發現它與調試有時幫助!我認爲,如果您的servlet返回了200個響應代碼(我認爲它們的確如此,除非您另有指定),那麼我認爲不存在「正確」的響應,那麼就沒有問題了。

3

我想回應是好的,如果你看的東西,如Gmail,你會發現有很多是得到

ok 

作爲迴應,我喜歡這個帖子。它簡單而簡潔。

另一件需要考慮的事情是如何處理您的請求以某種方式失敗的情況,我認爲您的客戶端應該可以向用戶報告不成功的東西,因此需要響應來自servlet。

6

如果你只是想提供一個「成功」的狀態,只需返回HTTP代碼200.你不必返回任何流,因爲你只是想說「OK」。

public void doGet(...) { 
    response.setStatus(HttpServletResponse.SC_OK); 
} 
相關問題