Автор работы: Пользователь скрыл имя, 31 Мая 2013 в 01:06, курсовая работа
Метою даного курсового проекту є розробка програми, що надає собою доступ до покупки квитків театру в інтернеті. Додаток заснований на технології Java EE і активно використовує його можливості по створенню розподілених інформаційних систем
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ 8
ВВЕДЕНИЕ 9
1 АНАЛИЗ РАБОТЫ 11
1.1 Ключевые понятия 11
1.2 Описание работы 12
2 ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ 13
2.1 Выбор технологии реализации 13
2.1 Анализ работы с сервлетами и JSP-страницами 14
3 СТРУКТУРА ПРИЛОЖЕНИЯ 15
3.1 Структура базы данных 15
3.2 Разработа структуры взаимодействия компонентов программы 15
3.3 Разработка сервлета действия 17
3.4 Разработка внешнего вида приложения 19
4 ИНТЕРФЕЙС И РАБОТА ПРОГРАММЫ 20
5 ТЕСТИРОВАНИЕ 18
5.1 Технические требования 18
5.1 Тестирование программы 18
ВЫВОДЫ 20
ПЕРЕЧЕНЬ ССЫЛОК 21
ПРИЛОЖЕНИЕ А 23
Также, возможности MySQL могут быть расширены пользователем путём добавления новых
2.2 Анализ работы с сервлетами и JSP – страницами
Сервлет — это диспетчер процесса. Он находится на Web-сервере и обрабатывает входящие запросы и исходящие ответы.
На заре Web-разработки многие профессиональные программисты должны были определять, как эффективно использовать сервлеты. Наиболее часто это приводило к бурному росту числа сервлетов на сервере. На каждый тип запроса приходился один сервлет.
Это быстро стало неудобным, поэтому программисты начали включать в свои сервлеты условную логику, которая делала их более адаптируемыми, обрабатывающими несколько типов запросов. Со временем это тоже стало приводить к плохому коду. Существует лучший способ, называемый сервлетом действия (action servlet), эта идея эффективно использована в популярных библиотеках сервлетов, например в проекте Jakarta Struts.
Сервлет действия не имеет условной логики, выбирающей поведение сервлета. Вместо этого имеются действия (определенные программистом классы), которым сервлет передает полномочия для обработки запросов различного типа. Это намного лучший объектно-ориентированный подход, чем использование нескольких сервлетов или нескольких условий if в одном сервлете.
Cервлет почти не имеет ничего
общего с представлением. Но без
просмотра каких-либо
Таким образом работу приложения будет осуществлять сервлет действия, а за графическое отображение результатов на экране отвечают jsp-страницы.
3 СТруктура приложения
3.1 Структура базы данных
Рисунок 3.1 – Структура базы данных
На основе данной базы данных будут сформированы классы, которые определяют только необходимые поля и getter/setter-методы для этих полей и конструктор по умолчанию, чтобы этот класс соответствовал спецификации JavaBeans.
3.2 Разработа структуры
На основе модели данных формируется слой доступа к нижеуказанной модели. В зависимости от типа реализации может быть несколько имплементаций модели данных. Каждая имплементация через ORM работает с БД, ORM(Object relational mapping) представлен технологией компании JBoss – Hibernate. Также, для упрощения работы используется фреймворк Spring. У каждой имплементации слоя доступа есть свой сервис, то есть набор методов работы с БД, а у каждого сервиса, в зависимости от необходимости, может быть разная имплементация – Service Impl. Серверный слой приложения обращается с помощью протокола http через servlets + jsp к сервисному слою, а клиентская часть общается с БД через серверную. Далее следует ER(Entity-relationship – сущность-связь) диаграмма.
Рисунок 3.2 Взаимодействие компонентов программы
Рисунок 3.2 Взаимодействие компонентов программы
3.3 Разработка сервлета действия
Информация от компьютера клиента
отправляется серверу в виде объекта
запроса типа HttpServletRequest. Данный
интерфейс является
производным от интерфейса ServletRequest. Используя методы
интерфейса ServletRequest, можно получить
много дополнительной информации, в том
числе и о сервлете и деталях протокола
HTTP, закодированной и упакованной
в запрос:
String getCharacterEncoding() – определение символьной кодировки запроса;
String getContentType() – определение MIME-типа (Multipurpose Internet Mail Extension) пришедшего запроса;
String getProtocol() – определение названия и версии протокола;
String getServerName(), getServerPort() – определение имени сервера, принявшего запрос, и порта, на котором запрос был принят сервером соответственно;
String getRemoteAddr(), getRemoteHost() – определение IP-адреса клиента, от имени которого пришел запрос, и его имени соответственно;
String getRemoteUser() – определение имени пользователя, выполнившего запрос;
ServletInputStream getInputStream(), BufferedReader getReader() – получение ссылки на поток, ассоциированный с содержимым полученного запроса. Первый метод возвращает ссылку на байтовый поток ServletInputStream, а второй – на объект BufferedReader. В результате можно прочитать любой байт из полученного объекта-запроса. Если метод getReader() был вызван после вызова getInputStream() для этого запроса, то генерируется исключение IllegalStateException и наоборот.
При обращении к серверу, как правило, передаются параметры и их значения. Для разбора параметров и извлечения их значений применяются методы:
String getParameter(String name) – определение значения параметра по его имени или null, если параметр с таким именем не задан;
String[] getParameterValues(String name) – определение всех значений параметра по его имени;
Enumeration getParameterNames() – определение ссылки на список имен всех параметров через объект типа Enumeration.
Непосредственно в интерфейсе HttpServletRequest объявлен ряд методов, позволяющих манипулировать содержимым запросов:
void setAttribute(String name, Object ob) – установка значения атрибута компонента, являющегося внутренним параметром для передачи информации между компонентами приложения, например от сервлета к странице JSP или другому сервлету;
Enumeration getAttributeNames() – извлечение перечисления имен атрибутов;
Object getAttribute(String name) –
извлечение значения
Cookie[] getCookies() – извлечение массива cookie, полученного с запросом. Файл cookie – маленький файл, сохраняемый приложением на стороне клиента;
String getMethod() – определение имени метода доступа к ресурсам, на основе которого построен запрос;
String getQueryString() – извлечение строки HTTP-запроса.
В следующем примере рассматривается применение некоторых методов интерфейса HttpServletRequest для получения данных о запросе, посылаемом методом GET и генерации ответа клиенту.
public class ServletDownload extends HttpServlet{
private static final int BYTES_DOWNLOAD = 1024;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException{
response.setContentType("text/
response.setHeader("Content-
"attachment;filename=
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/
int read=0;
byte[] bytes = new byte[BYTES_DOWNLOAD];
OutputStream os = response.getOutputStream();
while((read = is.read(bytes))!= -1){
os.write(bytes, 0, read);
}
os.flush();
os.close();
}
}
Пример 3.3 – Сервлет действий (файл ServletDownload.java)
3.4 Разработка внешнего вида приложения
Как было указано выше, приложений должно иметь простой, стильный дизайн, выполненный при помощи jsp-страниц. С этой целью была разработана необходимая таблица стилей, общие части страниц (такие как хедер и футер), были вынесены в специальные jsp-страницы, которые подключаются к каждой странице приложения. Стоит отдельно отметить, что для вывода документа лабораторной работы в формате .doc была применена технология построения пользовательских тегов, позволяющая выделить java-код из jsp-страницы в соответствующие классы. Код всех страниц, таблицы стилей, а также обработчик пользовательского тега вынесены в ПРИЛОЖЕНИЕ «ЛИСТИНГ ПРОГРАММЫ»
4 Интерфейс и работа программы
Как отмечалось в разделе «АНАЛИЗ РАБОТЫ» программное средство должно иметь удобный интерфейс, производить обработку ошибок и сообщать об этом пользователю.
Для начала работы с
приложением необходимо обратится
к сервлету по адресу http://localhost:8080/Theatre/
Рисунок 4.1 – Стартовая страница index.html
При этом появится список всех представлений, хранящихся в базе данных, при выборе конкретной дисциплины и лабораторной из списка появится окно с полным содержанием.
Для заказа билета переходим на страницу ticket.jsp
Рисунок 4.2 – Заказ билета
Для связи с администрацием сайта используется форма обратной связи
Рисунок 4.3 – Форма обратной связи
Для доступа к закрытой части
приложения необходимо в адресной строке
браузера ввести адрес http://localhost:8080/
4 ТЕСТИРОВАНИЕ
4.1 Технические требования
При написании данной курсовой работы в качестве сервера использовался компьютер со следующими характеристиками:
Для корректного функционирования приложение требуется следующее ПО:
Таким образом компьютере-сервере должно быть установлено и настроено соответствующее ПО
Для компьютера-клиента
необходимым требованием
4.2 Тестирование программы
В ходе тестирования программы было обнаружено и исправлено несколько синтаксических, а также несколько логических ошибок. Одной из них была неправильная кодировка при передаче русских символов в сообщении между сервером и клиентом, но ее удалось устранить. Следует заметить, что обнаружение и исправление такой ошибки было просто необходимым условием для работы всего проекта.
Тестирование визуального
ВЫВОДЫ
В данной курсовой работе был проведен анализ литературных источников на предмет изучения платформы Java EE. Детально были рассмотрена вопросы создания и функционирования сервлетов и jsp-страниц, развёртывания готовых приложений на сервере
Разработанное программное средство может использоваться в коммерческом процессе с целью облегчения покупки и продажи билетов в театре. Приобретенные навыки могут быть использованы для создания более крупных проектов, связанных с клиент- серверными технологиями.
В ходе выполнения данной курсовой работы были углублены навыки программирования на языке Java, изучены и опробованы практически инструменты технологии Java EE, получены навыки работы со средой разработки Eclipse.
ПЕРЕЧЕНЬ ССЫЛОК
ПРИЛОЖЕНИЕ А
Листинг index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/
<html xmlns="http://www.w3.org/1999/
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Time 2 show</title>
<link rel="stylesheet" href="css/style.css" />
<script src="js/jquery-1.7.1.min.js"><
</head>
<body>
<div id="header-line"> </div>
<div id="wraper">
<div id="left-column">
<div class="play">
<div class="time">
Small Scene<br />
Theater 19<br />
11 Jan 2012
</div>
<div class="description">
<img src="images/promodv01.jpg" />
<h2><a href="single.jsp">"Dyadya Vanya"</a></h2>
<p>Play "Dyadya Vanya"</p>
</div>
</div>
<div class="clear"> </div>
<div class="play">
<div class="time">
Big Scene<br />
Theater 19<br />
21 Jan 2012
</div>
<div class="description">
<img src="images/image2.jpg" />
<h2><a href="single.jsp">"Captains of sand"</a></h2>
<p>Captains of Sand</p>
</div>
</div>
<div class="clear"> </div>
<div class="play">
<div class="time">
Big Scene<br />
Theater 19<br />
21 Jan 2012
</div>
<div class="description">
<img src="images/promoviy01.jpg" />
<h2><a href="single.jsp">"Viy"</a></
<p>Gogol. Viy</p>
Информация о работе Розробка веб-системи продажі білетів театру