48612 (608683), страница 3
Текст из файла (страница 3)
Из JSP-страницы можно получить доступ к различным объектам, включая корпоративные компоненты и JavaBean-компоненты. JSP-технология автоматически организует доступ к определенным объектам так, что можно создавать объекты-приложения и обращаться к ним из JSP-страницы.
По возможности, режим работы приложения следует инкапсулировать в объекты так, чтобы создатели страниц могли сфокусироваться на аспектах представления. Объекты могут создаваться разработчиками, которые являются профессионалами в программировании Java и в получении доступа к базам данных и другим службам. Существует четыре способа для создания и использования объектов в JSP-странице.
-
Переменные экземпляра и класса, относящиеся к классу сервлета JSP-страницы, создаются в объявлениях и доступны в скриптлетах и выражениях.
-
Локальные переменные класса сервлета JSP-страницы создаются и используются в скриптлетах и выражениях.
-
Атрибуты объектов области действия создаются и используются в скриптлетах и выражениях.
-
JavaBean-компоненты могут создаваться и быть доступными при помощи модернизированных JSP-элементов.
Вы также можете создавать JavaBean-компонент в объявлении или скриптлете и вызывать методы JavaBean-компонента в скриптлете или выражении.
JSP-скриптлет используется для хранения какого-либо фрагмента кода, действительного для языка сценариев, используемого в данной странице. Синтаксис для скриптлета выглядит следующим образом:
<%
scripting language statements
%>
Когда языком сценариев является java, скриптлет трансформируется во фрагмент выражения языка Java и вставляется в метод service сервлета JSP-страницы. Переменная языка программирования, созданная в скриптлете, доступна из любой точки JSP-страницы.
JSP-выражение используется для вставки в поток данных, возвращаемый клиенту, значения выражения языка сценариев, конвертированного в строку. Когда языком написания сценариев является Java, выражение преобразовывается в оператор, конвертирующий значение выражения в объект String и вставляющий его в неявный объект out. Синтаксис такого выражения выглядит следующим образом:
<%= scripting language expression %>
Использование точки с запятой в JSP-выражениях запрещено, даже в тех случаях, когда у такого же выражения, используемого в скриптлете, она присутствует.
-
Технология JavaBeans
JavaBean-компоненты - это Java-классы многократного использования, которые можно объединять в приложения. Любой Java-класс, который удовлетворяет определенным правилам создания, можно считать JavaBean-компонентом.
Технология страниц JavaServer поддерживает использование JavaBean-компонентов с элементами языка JSP. Вы можете легко создавать и инициализировать компоненты, а также получать и устанавливать значения их свойств. Правила создания JavaBean-компонентов управляют свойствами класса и методами public, которые дают доступ к свойствам.
В качестве свойств JavaBean-компонентов могут быть:
-
Чтение/запись, только чтение или только запись
-
Простой (JavaBean-компонент), в этом случае он содержит одно значение или индексированный, то есть представляющий массив значений
Реализация свойства при помощи переменной экземпляра не является необходимым. К свойству просто должен осуществляться доступ с помощью методов public, удовлетворяющих определенным условиям:
-
Для каждого читаемого свойства у компонента должен быть метод, вида: PropertyClass getProperty() { ... }
-
Для каждого записываемого свойства у компонента должен быть метод, вида: setProperty(PropertyClass pc) { ... }
Кроме методов свойств, JavaBean-компонент должен определять конструктор, у которого нет параметров.
Элемент jsp:useBean объявляет, что в странице будет использован компонент, который хранится, и к которому есть доступ из определенной области действия. Такой областью действия может быть приложение, сессия, запрос или страница. Если такого компонента не существует, выражение само создает компонент и хранит его как атрибут объекта области действия. Значение атрибута id определяет имя компонента в области действия и идентификатор, используемый для того, чтобы ссылаться на компонент из других JSP-элементов и скриптлетов.
-
-
Проект программного продукта
-
Документация проекта
-
Общая функциональность программного продукта
При разработке данного программного продукта была избрана концепция визуального моделирование проекта, реализованная при помощи языка моделирования UML. В качестве среды проектирования была выбрана Ration Rose. Сначала была создана диаграмма вариантов использования, описывающая общую функциональность данного программного продукта.
Рис 2.1 Диаграмма вариантов использования
На данной диаграмме отображено взаимодействие программы с различными актерами. Существует три типа пользователей: администратор, преподаватель, студент. Администратору доступны такие функции, как создание, изменение и удаление пользователей разных уровней. Преподавателю не доступны функции администратора, но доступны функции администрирования тестов и просмотра статистики их прохождения студентами. Студенту доступны лишь функции прохождения тестов и получения личной статистики.
-
Модель данных
Далее были разработаны модели данных о пользователях, тестах и статистики которые были описаны в DTD файлах Users.dtd, Tests.dtd и Stats.dtd.
Users.dtd
Корневым элементом данной структуры является Users, который представляет информацию о всех пользователях. Информация о конкретном пользователе находиться в элементе User, который в свою очередь содержит поля User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date. Все элементы отображают различные характеристики пользователя, и являются обычными текстовыми полями.
Tests.dtd
Поле Tests является корневым и содержит информацию о всех тестах. Информация о конкретном тесте содержится в элементе Test, он включает в себя атрибуты Test_ID, Subject, Teacher, Time_Limit, а также вложенный элемент Questions, который содержит информацию о вопросах. Информация о конкретном вопросе содержится в элементе Question, он включает в себя атрибуты Quest_ID, Text,Quont_ Ans, Right_Ans_ID, а также вложенный элемент Answers, содержащий информацию о ответах на данный вопрос. Информация о конкретном ответа содержится в элементе Answer, который характеризуется полями Ans_ID, Ans_Text, Correctness.
Stats.dtd
Поле Stats является корневым и содержит информацию о всех пройденных тестах. Статистика прохождения конкретного теста содержится в элементе Stat, он включает в себя атрибуты S_Stat_ID,S_User_ID,S_Test_ID, а также вложенный элемент S_Questions, который содержит информацию о корректности ответов, которые давал студент при ответах на вопросы.
-
Объектная модель приложения
Диаграммы классов изображенные на рисунках 2.2, 2.3, 2.4 отображают объектную модель части приложения для работы с пользователями, тестами и статистикой соответственно.
Класс XMLLogin отвечает за работу с XML файлом, в котором хранятся данные о пользователях. Данный класс реализует основную функциональность администратора . Функция addUser() добавляет нового пользователя, в качестве параметров получает данные, отображающие все его характеристики (User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date). Функция removeUser() удаляет пользователя, номер которого передается в качестве параметра. Функция modifyUser() изменяет данные о конкретном пользователе, в качестве параметров получает номер пользователя и значение характеристик.
Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Users, которое является контейнером для хранения данных. Классы User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newUser() является private-функцией и используется для создания объекта типа User.
рис 2.1 Диаграмма классов XMLLogin и TypeBean
Класс XMLTests отвечает за работу с данными о тестах. Данный класс реализует основную функциональность преподавателя. Функция addTest() добавляет новый тест, в качестве параметров получает данные, отображающие все его характеристики (Test_ID, Subject, Teacher, Questions, Time_Limit). Функция removeTest() удаляет тест, номер которого передается в качестве параметра. Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Tests, которое является контейнером для хранения данных. Классы Test_ID, Subject, Teacher, Questions, Time_Limit были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newTest() является private-функцией и используется для создания объекта типа Test.
рис 2.2 Диаграмма классов XMLTests и TestsBean
рис 2.3 Диаграмма классов XMLStats и StatsBean
-
Архитектура программного обеспечения
рис 2.5 Архитектура программного обеспечения
Программное обеспечение имеет двухуровневую структуру. На верхнем уровне находиться программное обеспечение реализованное в виде сервлета или JSP-страницы. Нижний уровень представляет собой ПК клиента на котором установлен Web-браузер. Данные на сервере хранятся в XML-файлах. При обращении к серверу работа с данными на JSP-страницах осуществляется через классы JavaBeans (TypeBean, TestsBean, StatsBean), которые в свою очередь обращаются к классам XMLLogin, XMLTests и XMLStats. Таким образом достигается большая независимость уровня данных от уровня приложений. Т.к. классы JavaBeans, находящиеся на внешнем уровне не взаимодействуют непосредственно с файлами данных, то при изменении способа хранения данных будут затронуты только классы XMLLogin, XMLTests и XMLStats, которые отвечают за хранение и изменение данных. Таким образом программное обеспечение становиться более «гибким» и легко изменяемым. Пользователь взаимодействует только со внешним уровнем ПО, представленного JSP-страницами.
-
Структура прикладной программы
Перед непосредственным созданием JSP страниц необходимо уяснить общую структуру программы и взаимодействие между страницами.
рис 2.6. Диаграмма навигаций
Работа с программой начинается со страницы login.jsp.
рис 2.7. Начальная страница программы login.jsp
При правильном вводе логина и пароля пользователь попадает на страницу main.jsp, которая направляет в зависимости от его прав на страницы admin.jsp, teacher.jsp и testspassing.jsp. Страница администратора admin.jsp позволяет создавать, редактировать и удалять пользователей. Страница преподавателя teacher.jsp позволяет создавать, редактировать и удалять тесты, вопросы и ответы к ним, просматривать статистику проведения тестового контроля. Страница студента testspassign.jsp позволяет студенту выбрать тест для прохождения и просматривать информацию о пройденных им тестах.
-
Проектирование интерфейса пользователя
Интерфейс проектируется исходя из диаграммы навигаций. На странице login.jsp необходимо реализовать форму с полями для ввода логина и пароля (рис 2.7). Т.к. с главной страницы возможен переход на все остальные, а со всех страниц возможен возврат на главную страницу, то целесообразно реализовать меню навигации по сайту на каждой странице (см. рис 2.8). На страница admin.jsp, teacher.jsp и testpassing.jsp необходимо реализовать таблицы просмотра информации и формы для добавления, редактирования и удаления различных данных .








