- •30.Общее представление о потоках ввода/вывода
- •31.Байтовые и символьные потоки
- •32. Определение файла. Тестирование проверка объектов File
- •34. Сериализация
- •35. Обработка исключений в Java
- •36. Многопоточное программирование
- •37. Создание потока и его жизненный цикл
- •38. Управление приоритетами и ThreadGroup
- •39. Потоки-демоны
- •40. Методы synchronized
- •41. Коллекции
- •42. Списки
- •43. 43. Множества
- •44. Карты отображений
- •45. Обзор сокетов
- •49. Дейтаграммы
- •46. Сетевые классы и интерфейсы 47. Производственные методы 48. Сокеты tcp/ip клиентов и серверов
- •50. Основы оконной графики 51. Иерархия классов awt
- •Класс Applet
- •52. Свойства класса Component
- •53. Класс Container
- •54. Наследники класса Component
- •55. Классы Choice и List
- •56. Классы TextComponent, TextField, TextArea
- •57. Наследники Container
- •58. Swing-технология
- •59. Обработка событий в Java
- •60. Классы-адаптеры
- •61. Понятие и терминология jdbc 62. Связь и различия jdbc и odbc
- •63. Драйвера, соединения и запросы
- •64. DriverManager
- •65. Создание соединения с источником данных
- •66. Интерфейсы Statement, PreparedStatement и CallableStatement
- •69. Использование потоков в апплетах
- •70. Основы xml
- •71. Xml. Схема dtd. Элемент Schema схемы xml
- •72. Ссылки xml
- •74. Язык xLink (Атрибуты связующих элементов xLink, возможные значения атрибута xlink:show, возможные значения атрибута xlink:actuate)
- •75. Язык xPointer (Синтаксис xPointer, элементы абсолютного обнаружения xPointer, выражения отношений, фильтры атрибутов и их значений)
- •76. Объектная модель документа xml – dom
- •77. Simple api для xml (sax)
- •78. Язык преобразований xslt (Операционный xslt, процесс преобразования xsl, использование xslt, преобразования xml в html)
- •80. Сервлеты: структура, назначение и преимущества
- •81. Жизненный цикл сервлета
- •83. Пакеты javax.Servlet и javax.Servlet.Http
- •84. Технология rmi. Сравнение распределенных и нераспределенных приложений
- •85. Архитектура rmi
83. Пакеты javax.Servlet и javax.Servlet.Http
Java Serviet API - стандартный набор классов и интерфейсов по созданию и обслуживанию serviet. Serviet API определяет стандартные средства по обработке запросов и ответов посредством serviet. Java Serviet API представляет множество классов, сгруппированных в двухосновных пакетах - javax.servlet и javax.servlet.http. Последний предназначен непосредственно для работы с HTTP-протоколом. Кроме HTTP-протокола, servlet поддерживает также широко распространенные почтовые протоколы POP и SMTP, а также протокол передачи файлов FTP и пользовательских протоколов. Java Serviet API является стандартным расширением JDK Java Extension API, который не является частью основного Java API, но доступен как добавочный. Пакеты по работе с servlets поставляются фирмой SUN В нескольких разных наборах разработчика (SDK)
Пакет javax.servlet содержит классы для создания servlets, независимых от протоколов передачи. Servlets, сгенерированные из классов данного пакета, могут работать с различными протоколами передачи данных, например HTTP и FTP.
Пакет javax.servlet.http содержит классы, предназначенные для генерации serviet, работающих только по протоколу HTTP. В отличие от стандартных serviet, в спецификации 2.1 указываются методы doGet() и doPost(), заменяющие собой основной метод service().
Установка Servlet Development Kits зависит от того, в каком инструментарии находятся пакеты содержащие servlet классы.
После установки какого-либо Development Kit, содержащего необходимые архивы, обязательно правильно установить системную переменную CLASSPATH, для того чтобы компилятор javac смог правильно определить местоположение классов, необходимых для создания servlet.
84. Технология rmi. Сравнение распределенных и нераспределенных приложений
В основу RMI положена идея удаленного вызова процедур RPC (Remote Procedure Call), которая состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удаленными компонентами с небольшим временем ответов и относительно малым количеством передаваемых данных. Такие приложения называются RPC-ориентированными. Реализация удаленных вызовов существенно сложнее реализации вызовов окальных процедур, т.к. поскольку вызывающая и вызываемая процедуры выполняются на разных машинах, то они имеют разные адресные пространства, и это создает проблемы при передаче параметров и результатов, особенно если машины не идентичны. Так как RPC не может рассчитывать на разделяемую память, то это означает, что параметры RPC не должны содержать указателей на ячейки нестековой памяти и что значения параметров должны копироваться с одного компьютера на другой. Следующим отличием RPC от локального вызова является то, что он обязательно использует нижележащую систему связи, однако это не должно быть явно видно ни в определении процедур, ни в самих процедурах. Удаленность вносит дополнительные проблемы. Выполнение вызывающей программы и вызываемой локальной процедуры в одной машине реализуется в рамках единого процесса. Но в реализации RPC участвуют как минимум два процесса - по одному в каждой машине.
Кроме того, существует ряд проблем, связанных с неоднородностью языков программирования и операционных сред: структуры данных и структуры вызова процедур, поддерживаемые в каком-либо одном языке программирования, не поддерживаются точно так же во всех других языках.
Эти и некоторые другие проблемы решает широко распространенная технология RPC, лежащая в основе многих распределенных операционных систем.
В Интернет и корпоративных сетях может возникнуть необходимость вызвать метод, принадлежащий объекту на другом компьютере. Java обеспечивает такие вызовы с помощью механизма вызова удаленных методов, получившего название активизации удаленных объектов (RMI).
RMI-технология позволяет выполнять прозрачный запуск методов объектов Java, которые расположены на удаленных машинах, таким образом, как если бы они располагались на локальных машинах. RMI – позволяет строить приложения, работа которых распределена между несколькими машинами в архитектуре клиент-сервер.