gpt4 book ai didi

java - 在请求 Dispatcher.forward 方法之后从另一个 Servlet 调用一个 Servlet

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:56 25 4
gpt4 key购买 nike

我正在使用 java servlet 编写网页。当用户订阅时,他将收到一封包含激活链接的电子邮件。目前,servlet 在发送电子邮件后将用户(使用请求调度程序)重定向到感谢页面,这需要一些时间。我想在创建和发送电子邮件之前将用户重定向到页面,然后由另一个 servlet 执行电子邮件创建,而无需用户等待。这可能吗?使用 request Dispatcher.forward 方法后,如何从另一个 servlet 中调用 servlet?那可能吗?如果不是,那么做我想做的事的最佳方法是什么?谢谢。

最佳答案

您的问题实际上有两个不同的问题:

  • 您想重定向到另一个页面
  • 您想在重定向后继续处理

从 servlet 重定向到另一个 URL 很简单,只需调用:

response.sendRedirect("url?param=value");

对于第二部分,似乎可以在将响应发送到客户端之后继续在 servlet 中进行处理。根据我对 Tomcat 7 servlet 容器的测试,如果 ContentLength 设置为 0(因为正文为空)并且输出流关闭,则可以执行此操作。我永远无法从 servlet 规范中得到确认,但正如我上面所写的,它可以在 Tomcat 上运行:

response.sendRedirect("url?param=value");
response.setContentLength(0);
response.getOutputStream().close();
// continue after connection with client is closed
// generate and send email

关于java - 在请求 Dispatcher.forward 方法之后从另一个 Servlet 调用一个 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25854077/

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