页上的停止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