gpt4 book ai didi

java - 在 servlet 处理完成之前转发到 View

转载 作者:行者123 更新时间:2023-11-30 09:34:36 24 4
gpt4 key购买 nike

我正在编写一个简单的 Web 应用程序,它将一些文件上传到服务器,运行一些代码,然后通过电子邮件将生成的文件发送给用户。但是,由于代码在用户上传一些文件后可能需要几个小时才能运行,我想将它们转发到通知页面。然后他们应该能够关闭浏览器,同时在服务器上继续处理并等待结果电子邮件。

上传文件后我有这段代码:

request.setAttribute("notification", details);
RequestDispatcher view = request.getRequestDispatcher("views/notification.jsp");
view.forward(request, response);

然后是处理代码。问题是在所有处理完成之前不会转发 View 。让用户停留在表单页面上。如果用户关闭浏览器,处理仍会继续,但我想先向用户转发通知。

最佳答案

您需要异步处理您上传的文件。 Servlet 假定只有在您离开 servlet 后才会处理请求并关闭连接。如果您在 servlet 中运行处理代码,用户可能永远无法取回 View 。

对于异步处理,您有多种选择,从普通线程、线程池、JMS 开始...抓取文件,将其发送到后台运行的某个线程,以便处理是非阻塞的并立即返回 View 。

关于java - 在 servlet 处理完成之前转发到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com