ОТВЕРСТИЯ ОТ ПУЛЬ

  • Объект в одной куче не может получить обычную ссылку Java на объект в другой куче (что означает работу на другой JVM).
  • Вызов удаленного метода Java (RMI) создает впечатление, что вы вызываете метод для удаленного объекта (то есть объекта в другой JVM), но это не так.
  • Когда клиент вызывает метод удаленного объекта, клиент на самом деле вызывает метод прокси-сервера удаленного объекта. Прокси называется «заглушкой».
  • Заглушка — это вспомогательный объект клиента, который заботится о низкоуровневых сетевых деталях (сокеты, потоки, сериализация и т. д.), упаковывая и отправляя вызовы методов на сервер.
  • Чтобы создать удаленную службу (другими словами, объект, для которого удаленный клиент может в конечном итоге вызывать методы), вы должны начать с удаленного интерфейса.
  • Удаленный интерфейс должен расширять интерфейс java.rmi.Remote, и все методы должны объявлять RemoteException.
  • Ваша удаленная служба реализует ваш удаленный интерфейс.
  • Ваша удаленная служба должна расширять UnicastRemoteObject. (Технически существуют и другие способы создания удаленного объекта, но расширение UnicastRemoteObject — самый простой способ).
  • У вашего удаленного класса обслуживания должен быть конструктор, и конструктор должен объявлять RemoteException (поскольку конструктор суперкласса объявляет его).
  • Ваша удаленная служба должна быть создана, а объект зарегистрирован в реестре RMI.
  • Чтобы зарегистрировать удаленную службу, используйте статическое Naming.rebind("Имя службы", serviceInstance);
  • Реестр RMI должен работать на том же компьютере, что и удаленная служба, прежде чем вы попытаетесь зарегистрировать удаленный объект в реестре RMI.
  • Клиент ищет вашу удаленную службу, используя статический метод Naming.lookup("rmi://MyHostName/ServiceName");
  • Почти все, что связано с RMI, может генерировать RemoteException (проверено компилятором). Сюда входит регистрация или поиск службы в реестре, а также все вызовы удаленных методов от клиента к заглушке.
  • Сервлеты — это классы Java, которые полностью выполняются на (и/или внутри) HTTP-сервере (веб-сервере).
  • Сервлеты полезны для запуска кода на сервере в результате взаимодействия клиента с веб-страницей. Например, если клиент отправляет информацию в форме веб-страницы, сервлет может обработать информацию, добавить ее в базу данных и отправить обратно настроенную страницу ответа с подтверждением.
  • Чтобы скомпилировать сервлет, вам нужны пакеты сервлетов, которые находятся в файле servlets.jar. Классы сервлетов не являются частью стандартных библиотек Java, поэтому вам необходимо скачать сервлеты. jar с java.sun.com или получить их с веб-сервера с поддержкой сервлетов. (Примечание: библиотека сервлетов входит в состав Java 2 Enterprise Edition (J2EE))
  • Чтобы запустить сервлет, у вас должен быть веб-сервер, способный запускать сервлеты, например сервер Tomcat с сайта apache.org.
  • Ваш сервлет должен быть размещен в месте, специфичном для вашего конкретного веб-сервера, поэтому вам необходимо выяснить это, прежде чем пытаться запускать свои сервлеты. Если у вас есть веб-сайт, размещенный у поставщика услуг Интернета, поддерживающего сервлеты, поставщик услуг Интернета сообщит вам, в какой каталог следует поместить ваши сервлеты.
  • Типичный сервлет расширяет HttpServlet и переопределяет один или несколько методов сервлета, таких как doGet() или doPost().
  • Веб-сервер запускает сервлет и вызывает соответствующий метод (doGet() и т. д.) на основе запроса клиента.
  • Сервлет может отправить ответ, получив выходной поток PrintWriter из параметра ответа метода doGet().
  • Сервлет «записывает» HTML-страницу с тегами).