Я разработал веб-приложение (работает должным образом), которое регистрирует пользователя в системе и позволяет пользователю загружать файл в систему через https. Код на стороне клиента полностью разработан с использованием GWT 2.4, а серверная часть состоит из нескольких сервлетов. За исключением кода загрузки, все коммуникации клиент-сервер осуществляются через интерфейс ServiceAsync
, как это принято в GWT. Код загрузки основан на форме, напрямую связывающейся с сервлетом загрузки.
Этот проект разработан как курсовая работа, и мой профессор заинтересован в знании базовой архитектуры веб-инструментария Google, специально ориентированной на взаимодействие клиент-сервер. Его вопрос был
"Каким образом клиентский код знает URL-адрес сервера, чтобы все взаимодействие осуществлялось?"
Его вопрос правомерен для интерфейса ServiceAsync
. Я вызываю функцию на стороне сервера, которая кажется ему интересной, и он хочет знать, что лежит в основе этого процесса.
Для загрузки я только что определил uploadForm.setAction(GWT.getModuleBaseURL()+"upload");
, где upload - это имя сервлета загрузки в web.xml.
Я сказал ему, что компилятор генерирует код Javascript, который содержит весь код веб-приложения (вся система разрабатывается динамически), и URL-адрес сервлета помещается в этот файл сценария, однако ответ его не удовлетворяет. Пожалуйста, дайте мне знать внутренние факты взаимодействия клиент-сервер с GWT.
Пожалуйста, дайте мне несколько ответов, которые помогут моему профессору понять асинхронную связь RPC между клиентом и сервером GWT.