Как бы я дал немедленную обратную связь в JSP?

У меня есть форма JSP, которая (когда пользователь нажимает кнопку «Отправить») создает экземпляр класса Java и вызывает для него метод. Затем этот метод отправляет запрос (в проприетарном формате) на сервер, работающий на совершенно другом компьютере. Затем этот внутренний сервер либо отправляет отправившему пользователю электронное письмо и возвращает «УСПЕХ» методу Java, либо возвращает сообщение об ошибке.

Как только метод Java возвращается из вызова программы на другом поле, он передает результат JSP, который либо говорит пользователю ожидать сообщения электронной почты, либо отображает полученное сообщение об ошибке.

Проблема в том, что для этого нужно время. И по мере того, как внутренний сервер развивался и становился все более сложным (теперь он должен вызывать веб-службу, работающую на облачном сервере), время отклика стало больше.

И теперь у нас есть пользователи, которые из-за отсутствия немедленной обратной связи либо повторно нажимают кнопку отправки, либо обновляют страницу.

Есть ли способ дать пользователю какую-то немедленную обратную связь, как только JSP начнет обрабатывать «отправить», который будет отправлен до того, как начнется вся цепочка инстанцирования, вызова метода, удаленного системного вызова и т. д. ?

Есть много способов, включая AJAX и Javascript на клиенте, но ваш вопрос слишком широк для этого сайта. Пожалуйста, возьмите тур, посетите центр помощи и прочитайте Как спросить, чтобы узнать, как эффективно использовать этот сайт.

Jim Garrison 05.04.2022 21:11

Комментарий, указывающий на существование "out.flush()", даже язвительный и саркастический, был бы полезен. И если бы это было дано как ответ, а не как комментарий, его, вероятно, приняли бы как ответ.

hbquikcomjamesl 06.04.2022 02:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я сам нашел что-то, что будет достаточно хорошо:. Я могу выполнить "out.println()", за которым следует "out.flush", и это даст немедленную обратную связь. Быстрый и грязный тест доказывает это. И тот факт, что я еще не знал об этом, показывает, насколько мало я знаю о JSP (хотя я замечу, что это никогда не упоминалось в первом найденном мной учебнике по JSP, и только после того, как я посмотрел другие учебники, которые Я даже знал о его существовании).

Но я бы приветствовал лучшее решение.

Так же, как я всегда приветствую конструктивный критику.

Другие вопросы по теме