2013-04-05 25 views
0

我正在使用jetty服務器來處理http請求。我想知道是否有任何方法可以檢查響應是否成功發回客戶端。是否有我可以檢查的錯誤代碼或狀態,或者如果由於任何原因導致客戶傳輸失敗,我可以捕捉到異常?如何確定javax.servlet是否成功發送響應

感謝

+1

打開瀏覽器,在地址欄中輸入servlet的URL,查看頁面是否正確加載?我不確定我明白你在問什麼。 – 2013-04-05 21:50:26

回答

2

是否有錯誤代碼,或者我可以檢查狀態,還是一個異常,如果轉移到客戶端無法以任何理由,我可以趕上?

聽起來好像您希望服務器能夠知道響應是否完全交付給客戶端。

簡單的答案是沒有辦法知道這一點。 TCP/IP不支持,HTTP不支持,Servlet API不支持。

在某些情況下,如果服務器發現客戶端提前關閉了連接,則可能會拋出異常。但是沒有保證它會注意到,或者它會導致應用程序servlet代碼可見的異常。事實上,在servlet調用返回之後,關閉很可能不會被注意到(如果有的話)。


如果你想實現某種「響應發送」確認的網頁,你能嵌入在發送一個AJAX請求到服務器的網頁一些「的onload」的JavaScript。但是,您必須考慮用戶禁用Javascript的情況,或者原始請求由非瀏覽器應用程序創建的情況。

+0

因此,當輸出流被刷新時,如果客戶端斷開連接,不能保證它會拋出一個觀點。 – Mandor 2013-04-08 14:14:20

+0

@Moror - 這是正確的。 – 2013-04-09 03:34:55

+0

好的,謝謝Stephen的回覆! – Mandor 2013-04-09 14:14:03

相關問題