Ранее мы упоминали, что программы JSP представляют собой модули и обладают мощными функциями запроса представления. Обеспечение идеального доступа к базе данных — сложный процесс, и интерфейс JDBC может хорошо завершить этот процесс. Однако код JDBC, встроенный в код JSP, так же, как команды SQL, встроенные в JDBC, могут в полной мере использовать возможности JSP для создания понятного и простого API для клиентов. Для достижения этой цели мы можем рассмотреть возможность использования операций JSP для создания компонентов интерфейса базы данных.
Идеальный шаблон проектирования JSP — Модель-Представление-Контроллер (MVC). Традиционная трехуровневая система: Модель предназначена для логики программы и данных; Представление предназначено для просмотра, а Контроллер предназначен для обработки запросов. Следуя этой модели, программа JSP содержит страницы для каждой «строки» диалогового окна клиент-сервер. В типичной программе вы можете увидеть страницу запроса, страницу проверки, страницу вставки базы данных, страницу обновления базы данных и т. д.
В предыдущей статье мы обсуждали, как встроить JDBC в каждую страницу, чтобы структура программы была более разумной. Однако создание исполняемых команд SQL, а также переменных, передаваемых через команды JDBC, также может увеличить сложность программы.
Операции JSP, разработанные JDBC
Другой подход к операциям с базой данных JSP заключается в создании набора операций для базы данных без использования JDBC. Используя этот подход, вы можете получить два преимущества: во-первых, вы можете исключить необходимость использования JDBC, что упрощает большую часть работы; во-вторых, ваш дизайн и организация кода становятся более разумными (например, читаемость, гибкость, производительность и удобство обслуживания).
Вам все еще нужны драйверы, но сначала вы упростите описанное выше. Операции в программе JSP представляют собой логические блоки, которые обычно пишутся и используются другими разработчиками программ JSP, но вы можете использовать их как подпрограммы. Значение использования операций JSP заключается в стандартизации определенных функций и минимизации объема кода Java, встроенного в JSP.
JSP предоставляет набор стандартных классов расширения. С помощью этих классов вы можете определить операцию через обработчик тега. В JSP определены два интерфейса Java: интерфейс тега и интерфейс BodyTag, которые выполняются классом TagSupport и классом BodyTagSupport соответственно.
Вы можете создать библиотеку тегов для общих целей JSP, а также реализовать обработчики тегов для расширения поддержки классов. Вот шаги для реализации этих процессов.
Сначала выполните класс менеджера тегов:
packagecom.myactions;
(заявления об импорте находятся здесь)
публичный класс MyActionTag расширяет TagSupport {
...
}
Затем скомпилируйте этот код и поместите файл класса в библиотеку классов программы. Затем вам понадобится файл дескриптора библиотеки тегов (TLD), который представляет собой XML-файл, соответствующий имени вашего действия и классу соответствующего менеджера тегов.
<тег>
<name>MyAction</name>
<tagclass>com.myactions.MyActionTag</tagclass>
<bodycontent> (что угодно) </bodycontent>
<attribute>мои данные</attribute>
</tag>
</tag>
Соответствующие пробные версии
Предположим, вы создали действие с именем MyAction, которое представляет собой TLD, соответствующий классу com.myactions.MyActionTag. Файл TLD должен находиться в пути TLD программы.
Когда вы вызываете операцию со страницы JSP, TLD сообщает JSP правильный класс для использования этой операции. Это обеспечивает большое удобство и требует лишь небольшого количества кода.
Но где внедрять SQL? Во-первых, вам необходимо установить доступ к базе данных с возможностью подключения. Это можно сделать с помощью интерфейса javax, который доступен в дополнительном наборе инструментов JDBC 2.0. Класс javax.sql.DataSource в JDBC 2.0 обеспечивает необходимое соединение.
Где сейчас находится SQL? Это в бобе. Вы можете использовать JDBCcreateStatement и ReadedStatement для создания метода в компоненте. Сделайте этот метод общедоступным вектором и правильно передайте ему инструкции SQL.
Резюме Ваш компонент базы данных выполняет оператор SQL, встроенный в тело действия. Вы можете передать оператор SQL или использовать его для выполнения предварительной операции. Выполнять свои действия можно через менеджер тегов. Поскольку JDBC встроен в код библиотеки, вы не сможете явно использовать его в программе JSP.
На первый взгляд этот подход может показаться более сложным, чем встроенный SQL в JDBC и встроенный JDBC в JSP, но поскольку вы создаете операции SQL и сохраняете их в TLD, вам нужно выполнить их только один раз, во всех программах JSP, к которым у вас есть доступ. эти операции. В этом преимущество такого подхода.
В следующий раз мы поговорим о передаче данных между JSP-страницами и сессиями.