頁上的停止JSP處理我有這個頁面:接近
<%@page language="java"%>
<html>
<head></head>
<body>
<% while(true) System.out.println("foo"); %>
</body>
</html>
,我希望當我關閉瀏覽器,會話到期之前停止該頁面執行。
我的想法是使用JavaScript捕獲onunload
事件,使用AJAX將線程ID回發到servlet /另一個JSP,並在一段時間後(即15秒)殘酷地終止線程。
這是正確的嗎?可能嗎?有什麼更好的想法
爲什麼你會有這樣的JSP頁面? – BalusC
這是一個簡化,我有一些jsp/servlets在數據庫上執行長時間運行的過程,處理圖形。有時我需要在這些程序自然完成之前停止,有時我希望這些程序與客戶綁定,因爲如果客戶斷開連接,就無法查看結果...所以寶貴的資源完全被浪費了...... –
在Java EE環境中手動產生非託管線程是非常糟糕的做法。如果您有100個甚至更少的訪問者同時執行此操作,則必須重新啓動服務器,因爲它完全被鎖定。相反,您應該使用具有任務隊列的固定線程池和執行程序服務。大多數容器都支持這個功能。對於一些指針,請檢查這些答案:http://stackoverflow.com/q/5357856和http://stackoverflow.com/q/6151574 – BalusC