0

我希望用户发帖,处理帖子中的数据并将请求转发到 jsp 页面。jsp 页面被发送回给用户,但是服务器应该做一份工作。这项工作需要很多时间,所以用户不应该等待它。

protected void doPost(HttpServletRequest request, HttpServletResponse response) {
  //... get posted data ...
  request.getRequestDispatcher("/page.jsp").forward(request, response);
  //do-someting
}

我希望在连接关闭并且用户获取 page.jsp 后完成“做某事”。当然,“做某事”完全是服务器端的,比如更新数据库等。所以即使用户离开页面,服务器也会继续工作。在转发到 jsp 页面之后,我尝试刷新并关闭 servlet 中的输出流,但这会导致异常。jsp 页面中的刷新和关闭也会导致异常。我怎样才能做到这一点?

4

1 回答 1

0

如果您的工作(做某事)完全独立于应该在 jsp 中显示的内容,那么您可以使用以下方法之一:

  • 计时器
  • 一个线程(在线程池中)
  • Quartz这样更强大的库,它将为您提供强大的调度功能
于 2012-09-13T21:16:41.323 回答