我有一个JSP
页,用户可以在其中填写表格。
该servlet获取用户输入,进行一些计算,发送一些电子邮件,然后将用户重定向到另一个页面。
问题在于“发送电子邮件”部分持续了几秒钟,因此从提交表单到显示新页面,用户等待了很多时间。
在servlet中的顺序为:
//...
//servlet gets the user input and store all the info to an object `MyObject` filesToAttach
response.sendRedirect(destination); // show the new page to the user..
sendEmail(filesToAttach); //method that sends the emails
//...
尽管sendRedirect
排在第一位,但sendEmail
方法完成后才向用户显示新页面...
我可以在运行它的地方使用ServletContextListener
,例如每10分钟检查一次是否有电子邮件要发送。
但是,有没有一种方法可以向用户显示新页面,然后servlet继续发送电子邮件?
答案 0 :(得分:0)
简单的答案:使用专用的Thread
或Executor
异步发送电子邮件。