Как перенаправить пользователя на страницу, а затем сервлет выполняет метод - PullRequest
0 голосов
/ 27 августа 2018

У меня есть страница JSP, где пользователь заполняет форму.

Сервлет получает пользовательские данные, выполняет некоторые вычисления, отправляет некоторые электронные письма, а затем перенаправляет пользователя на другую страницу.

Проблема в том, что часть "отправки электронного письма" длится несколько секунд, поэтому пользователь ждет много времени с момента отправки формы до отображения новой страницы.

В сервлете порядок:

//...
//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 минут и проверяйте, отправляются ли электронные письма.

Однако есть ли способ показать новую страницу пользователю, а затем сервлет продолжает отправлять электронные письма?

1 Ответ

0 голосов
/ 27 августа 2018

Простой ответ: используйте выделенную Thread или Executor для асинхронной отправки электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...