Java 如何停止/中断servlet处理程序?

Java 如何停止/中断servlet处理程序?,java,servlets,Java,Servlets,如果我有一个长时间运行的请求处理程序,并且用户点击浏览器停止按钮,那么如何终止处理程序,使其不再继续工作?我在想一些简单的事情,比如根据从另一个看门狗线程检查的客户端连接状态引发线程中断(该线程在连接进入时提供了连接),但也许有更好的解决方案。如果用户点击停止按钮,除了作为连接重置,你永远不会知道它。您没有任何机会引发线程中断:这意味着从浏览器到服务器中另一个线程的另一次通信不会发生。另一个更简单的方法是使用ExecutorServicefromjava.util.concurrent使长时间运

如果我有一个长时间运行的请求处理程序,并且用户点击浏览器停止按钮,那么如何终止处理程序,使其不再继续工作?我在想一些简单的事情,比如根据从另一个看门狗线程检查的客户端连接状态引发线程中断(该线程在连接进入时提供了连接),但也许有更好的解决方案。

如果用户点击停止按钮,除了作为连接重置,你永远不会知道它。您没有任何机会引发线程中断:这意味着从浏览器到服务器中另一个线程的另一次通信不会发生。

另一个更简单的方法是使用
ExecutorService
from
java.util.concurrent
使长时间运行的进程异步。立即返回,并给客户一种方式,以便在准备好后获得响应,洛杉矶联邦快递


servlet永远不应该执行进程,同步或异步。它们用于侦听HTTP请求、绑定和验证输入参数、路由到适当的服务以完成请求,以及将响应封送到适当的视图。

处理此问题的一种方法是单独实现long work/req/proc,并公开状态标志以给出状态。选项。现在从servlet异步调用它。当客户机按下STOP键时,来到servlet检查运行状态,必要时中断并更新用户