Читайте также:
|
|
В качестве клиента выступает веб-страница JSP (Java Server Page).
JSP страницы загружаются на сервере и управляются из структуры специального Java server packet, который называется Java EE Web Application, в большинстве своём упакованная в файловые архивы.war и.ear.
Выгода, которую дает технология JSP в сравнении с другими веб-технологиями заключается в том, что JSP является платформонезависимой, переносимой и легко расширяемой технологией для разработки веб-приложений.
Всю работу по взаимодействию с СУБД, отправление и обработка запросов, выполняет специальный объект на сервере, так называемый сервлет.
Сервлет является Java-программой, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.
Сервлеты должны реализовывать Servlet интерфейс, который определяет методы жизненного цикла.
Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.
Пакеты javax.servlet и javax.servlet.http[3] обеспечивают интерфейсы и классы для создания сервлетов.
Жизненный цикл сервлета состоит из следующих шагов:
- в случае отсутствия сервлета в контейнере;
- класс сервлета загружается контейнером;
- контейнер создает экземпляр класса сервлета;
- контейнер вызывает метод init(). Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод init() вызывается только однажды;
- обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод service() для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса;
- в случае если контейнеру необходимо удалить сервлет, он вызывает метод destroy(), который снимает сервлет из эксплуатации. Подобно методу init(), этот метод тоже вызывается единожды за весь цикл сервлета.
Для исполнения сервлета требуется так называемый контейнер сервлета.
Контейнер представляяет собой сервер, который занимается системной поддержкой сервлетов и обеспечивает их жизненный цикл в соответствии с правилами, определёнными в спецификациях. Может работать как полноценный самостоятельный веб-сервер, быть поставщиком страниц для другого веб-сервера, например Apache, или интегрироваться в Java EE сервер приложений. Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них.
Для написания и тестирования сервлета был установлен специальный модуль Apache – Tomcat.
Tomcat (в старых версиях — Catalina) — контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов и спецификацию JavaServer Pages (JSP). Написан на языке Java.
Tomcat позволяет запускать веб-приложения, содержит ряд программ для самоконфигурирования.
В связи со специфическими особенностями языка Java состав клиентского приложения представляет собой пакет классов, реализующих работу сервлета (обработка запросов пользователя, отображение данных в браузер), и пакет классов для подключения и отправки запросов к БД.
В Java для работы с СУБД определен интерфейс JDBC. Этот инерфейс реализуется драйверами для конкретных СУБД. А драйвер, как известно, занимает место между базой данных и приложением.
Ниже на рисунке 3 представлена схема, как драйвер конкретной СУБД реализует интерфейс JDBC при построении приложения.
Рисунок 3 – драйвер СУБД в приложении Java
С сайта разработчика СУБД Firebird были взяты драйверы JayBird для взаимодействия посредством интерфейса JDBC с СУБД.
Ниже приведен код, осуществляющий подключение к Базе Данных, реализован как конструктор FBConnect:
public FBConnect(String driver, String url, String login, String pass)
{
Try
{
Class. forName (driver);
conn = DriverManager. getConnection (url, login, pass);
result=problem_none;
} catch (ClassNotFoundException ex)
{
System. err. println("FBConnect.Cannot find this db driver classes.");
ex.printStackTrace();
result=driver_problem;
} catch (SQLException e)
{
System. err. println("FBConnect.Cannot connect to this db.");
e.printStackTrace();
result=conn_problem;
}
}
В лог ошибок выводятся ошибки подключения, связанные с проблемой драйвера, или самой БД (неправильное имя пользователя и пароль).
Ниже представлены страницы.jsp, запускающие стандартными HTTP-запросами POST/GET соответствующие классы сервлетов авторизации пользователя, поиска, добавления в РБД и так далее.
При вводе адреса интерфейса пользователь попадает на стартовую страницу входа (рисунок 4), где требуется ввести логин и пароль пользователя. Все пользователи зарегистрированы СУБД, поэтому и проверка правильности проводится на стороне СУБД, однако сервлет возвращает соответствующие сообщения о правильности ввода в вызвавший его узел.
При удачном входе пользователь регистрируется в системе и может осуществлять поиск по полям, задавая ключевые слова, либо определяя дату. Процесс поиска показан на рисунке 5.
По мере работы с интерфейсом могут возникать различные ошибки, как на стороне сервера (непредвиденное отключение БД, неотлаженные ошибки методов, различные исключения методов классов). Предусмотрен вывод страницы с сообщением ошибки и указанием обратиться за помощью к специалистам и разработчикам. Пример вывода сообщения об ошибке показан на рисунке 6.
Рисунок 4 – Стартовое окно входа в систему
Рисунок 5 – Пример поиска отчетов по полю
Рисунок 6 – Страница с сообщением об ошибке выполнения операции
Заключение
В ходе производственно-технологической практики было проведено знакомство со структурой предприятия, общее ознакомление с администрированием сети в отделе. Было получено индивидуальное задание на разработку Интерфейса Пристава для выборки отчетов из БД.
Все поставленные цели и задачи практики были выполнены успешно. В результате прохождения производственно-технологической практики был разработан интерфейс в виде веб-сервиса, а так же было составлено ТЗ на разработку подобной системы.
Дата добавления: 2015-09-05; просмотров: 75 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Работа с СУБД. Определение набора процедур. | | | Цели и задачи Конкурса |