Можно ли передавать содержимое текстовых файлов из сервлета в JSP? - PullRequest
0 голосов
/ 02 января 2019

У меня нет большого опыта работы с JSP / Сервлетами, и я искал ответ относительно своей проблемы, но не нашел ответа на свой вопрос.

Допустим, у меня на сервере есть файл с именем test.txt, и я хочу, чтобы мой сервлет динамически направлял содержимое файла на страницу jsp. Под динамически я подразумеваю, что если файл обновляется, текст добавляется в конец файла, тогда я хочу, чтобы клиент, просматривая полученный файл html / jsp, увидел изменения в реальном времени.

Например, клиент сможет видеть изменения в элементе текстового поля в HTML-документе.

Возможно ли это с JSP / Servlets или нет? Если так, как бы я поступил об этом?

Спасибо за ваше время.

Уже пробовал искать похожие вопросы, искать потоковые запросы и не нашел ответа, который бы ответил на мой вопрос.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я уверен, что вы не профессионал в веб-разработке, так что давайте исправим это.Когда клиент (мобильное приложение, браузер, ...) хочет отправить запрос на сервер, он создает TCP / IP (у нас есть больше протоколов, таких как UDP, но веб-приложения работают поверх TCP/ Протокол IP) соединение.Все данные между клиентом и сервером будут передаваться по этому соединению.Это ваш единственный способ отправлять и получать данные с сервера или клиента.Когда вы создаете файл JSP (и он будет компилироваться в файл Class при развертывании на серверном приложении [для лучшего понимания поиска JASPER JSP ENGINE ]) для ответа на запросы, я выдам такой ответ для браузера:

some Http-Headers
Content-Type : text/html
some other Http-Headers

{JSP as a html text}

, поэтому браузер проанализирует ответ, отобразит его и покажет пользователю вашего клиента.Это означает, что эта страница JSP будет отправлена ​​как статическая HTML-страница.Для его обновления у вас есть 2 способа:

1- Неправильный путь: Keep-Alive соединение между клиентом и сервером, и каждый раз, когда вы хотите обновить клиент, отправляйте ему полный ответ снова!Таким образом, все данные приходят и HTML будет отображаться снова и ...Так что это плохой и небезопасный способ и многое другое.

2- Правильный путь: Создайте новое асинхронное соединение между клиентом и сервером, используя JavaScript, и просто запросите изменение данных в файле.и показать его пользователю в режиме реального времени, без отображения всей HTML-страницы.Если это соединение использует протокол Http (протокол http - это просто текстовый протокол, а не сетевой протокол, такой как TCP / IP), добавьте Connection : Keep-Alive в заголовок запроса к серверу, чтобы он оставался активным.

Примечание: если выХотите лучше понять, найдите socket в Java и узнайте, как это работает.

0 голосов
/ 02 января 2019

Я думаю, что вам, вероятно, следует загрузить файл:

См. Пример: Как загрузить файлы в приложение Java?

и перезагрузить страницу, используяjavascript

См .: Как перезагрузить страницу с помощью JavaScript

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