Skip to content

Лабораторные работы по веб-программированию (ИТМО, ПИиКТ-СиППО, 2 курс).

Notifications You must be signed in to change notification settings

testpassword/Web-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная №1

task1

Разработать PHP-скрипт, определяющий попадание точки на координатной плоскости в заданную область, и создать HTML-страницу, которая формирует данные для отправки их на обработку этому скрипту. Параметр R и координаты точки должны передаваться скрипту посредством HTTP-запроса. Скрипт должен выполнять валидацию данных и возвращать HTML-страницу с таблицей, содержащей полученные параметры и результат вычислений - факт попадания или непопадания точки в область. Предыдущие результаты должны сохраняться между запросами и отображаться в таблице. Кроме того, ответ должен содержать данные о текущем времени и времени работы скрипта.

Разработанная HTML-страница должна удовлетворять следующим требованиям:

  • Для расположения текстовых и графических элементов необходимо использовать табличную верстку.
  • Данные формы должны передаваться на обработку посредством POST-запроса.
  • Таблицы стилей должны располагаться в отдельных файлах.
  • При работе с CSS должно быть продемонстрировано использование селекторов потомств, селекторов псевдоэлементов, селекторов элементов, селекторов дочерних элементов а также такие свойства стилей CSS, как наследование и каскадирование.
  • HTML-страница должна иметь "шапку", содержащую ФИО студента, номер группы и новер варианта. При оформлении шапки необходимо явным образом задать шрифт (sans-serif), его цвет и размер в каскадной таблице стилей.
  • Отступы элементов ввода должны задаваться в пикселях.
  • Страница должна содержать сценарий на языке JavaScript, осуществляющий валидацию значений, вводимых пользователем в поля формы. Любые некорректные значения (например, буквы в координатах точки или отрицательный радиус) должны блокироваться.

живой пример

Как залить лабу 1 на гелиос?

Надо создать в корне своей директории директорию public_html, у неё рекурсивно выставить права 755 и передать файлы по SFTP. P.S. Ваша домашняя директории также должна иметь права 755.

Лаба будет доступна по ссылке https://se.ifmo.ru/~вашНомерНаГелиосе/

Лабораторная №2

task2

Разработать веб-приложение на базе сервлетов и JSP, определяющее попадание точки на координатной плоскости в заданную область. Приложение должно быть реализовано в соответствии с шаблоном MVC и состоять из следующих элементов:

  • ControllerServlet, определяющий тип запроса, и, в зависимости от того, содержит ли запрос информацию о координатах точки и радиусе, делегирующий его обработку одному из перечисленных ниже компонентов. Все запросы внутри приложения должны передаваться этому сервлету (по методу GET или POST в зависимости от варианта задания), остальные сервлеты с веб-страниц напрямую вызываться не должны.
  • AreaCheckServlet, осуществляющий проверку попадания точки в область на координатной плоскости и формирующий HTML-страницу с результатами проверки. Должен обрабатывать все запросы, содержащие сведения о координатах точки и радиусе области.
  • Страница JSP, формирующая HTML-страницу с веб-формой. Должна обрабатывать все запросы, не содержащие сведений о координатах точки и радиусе области.

Разработанная страница JSP должна содержать:

  1. "Шапку", содержащую ФИО студента, номер группы и номер варианта.
  2. Форму, отправляющую данные на сервер.
  3. Набор полей для задания координат точки и радиуса области в соответствии с вариантом задания.
  4. Сценарий на языке JavaScript, осуществляющий валидацию значений, вводимых пользователем в поля формы.
  5. Интерактивный элемент, содержащий изображение области на координатной плоскости (в соответствии с вариантом задания) и реализующий следующую функциональность:
    • Если радиус области установлен, клик курсором мыши по изображению должен обрабатываться JavaScript-функцией, определяющей координаты точки, по которой кликнул пользователь и отправляющей полученные координаты на сервер для проверки факта попадания.
    • В противном случае, после клика по картинке должно выводиться сообщение о невозможности определения координат точки.
    • После проверки факта попадания точки в область изображение должно быть обновлено с учётом результатов этой проверки (т.е., на нём должна появиться новая точка).
  6. Таблицу с результатами предыдущих проверок. Список результатов должен браться из контекста приложения, HTTP-сессии или Bean-компонента в зависимости от варианта.

Страница, возвращаемая AreaCheckServlet, должна содержать:

  1. Таблицу, содержащую полученные параметры.
  2. Результат вычислений - факт попадания или непопадания точки в область.
  3. Ссылку на страницу с веб-формой для формирования нового запроса.

Как развернуть war-архив на гелиос с помощью glassfish?

  1. Создаём домен для лабы: $ asadmin create-domain --domaindir ~/glass --portbase 41414 lab2 где:

    • ~/glass — путь до каталога, где вы хотите разместить свою лабу;
    • 41414 - число, от которого будут отсчитываться номера портов созданного домена. Проявите фантазию в выборе, чтоб не пересечься с другими студентами;
    • lab2 - название католога для веб-приложения (лабы).

    Сервер будет сконфигурирован. Заскриньте терминал: эти данные вам ещё понадобятся. Примерный вывод:

Using port 41462 for Admin.
Using port 41494 for HTTP Instance.
Using port 41490 for JMS.
Using port 41451 for IIOP.
Using port 41495 for HTTP_SSL.
Using port 41452 for IIOP_SSL.
Using port 41453 for IIOP_MUTUALAUTH.
Using port 41500 for JMX_ADMIN.
Using port 41480 for OSGI_SHELL.
Using port 41423 for JAVA_DEBUGGER.
  1. Запускаем созданный домен: $ asadmin start-domain --domaindir ~/glass lab2 (проверить его статус можно командой: $ asadmin list-domains --domaindir ~/glass)
  2. Так-как домены Glassfish недоступны снаружи, то необходимо пробросить порты через SSH-туннель. Заходим в консоль с своей машины и вводим: ssh -fNL 41462:127.0.0.1:41462 имяПользователяр@se.ifmo.ru -p 2222 После этого заходим на [127.0.0.1:41462] в браузере - должна отобразиться страница с приветствием Glassfish.
  3. Логинимся, деплоим приложение на вкладке application и пробрасывет порт для него (повторить пункт 3 с портом HTTP Instance).

Другие команды: $ asadmin stop-domain --domaindir ~/glass lab2 - остановить домен $ asadmin delete-domain --domaindir ~/glass lab2 - удалить домен

Лабораторная №3

task3

Разработать приложение на базе JavaServer Faces Framework, которое осуществляет проверку попадания точки в заданную область на координатной плоскости. Приложение должно включать в себя 2 facelets-шаблона - стартовую страницу и основную страницу приложения, а также набор управляемых бинов (managed beans), реализующих логику на стороне сервера.

Стартовая страница должна содержать следующие элементы:

  • "Шапку", содержащую ФИО студента, номер группы и номер варианта.
  • Интерактивные часы, показывающие текущие дату и время, обновляющиеся раз в 10 секунд.
  • Ссылку, позволяющую перейти на основную страницу приложения.

Основная страница приложения должна содержать следующие элементы:

  • Набор компонентов для задания координат точки и радиуса области в соответствии с вариантом задания. Может потребоваться использование дополнительных библиотек компонентов - ICEfaces (префикс "ace") и PrimeFaces (префикс "p"). Если компонент допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию.
  • Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки.
  • Таблицу со списком результатов предыдущих проверок.
  • Ссылку, позволяющую вернуться на стартовую страницу.

Дополнительные требования к приложению:

  • Все результаты проверки должны сохраняться в базе данных под управлением СУБД PostgreSQL.
  • Для доступа к БД необходимо использовать ORM EclipseLink.
  • Для управления списком результатов должен использоваться Session-scoped Managed Bean.
  • Конфигурация управляемых бинов должна быть задана с помощью параметров в конфигурационном файле.
  • Правила навигации между страницами приложения должны быть заданы в отдельном конфигурационном файле.

Лабораторная №4

task3

Переписать приложение из предыдущей лабораторной работы с использованием следующих технологий:

  • Уровень back-end должен быть основан на Spring.
  • Уровень front-end должен быть построен на Vue.js с использованием обычных полей ввода HTML
  • Взаимодействие между уровнями back-end и front-end должно быть организовано посредством REST API.

Приложение по-прежнему должно включать в себя 2 страницы - стартовую и основную страницу приложения. Обе страницы приложения должны быть адаптированы для отображения в 3 режимах:

  • "Десктопный" - для устройств, ширина экрана которых равна или превышает 1211 пикселей.
  • "Планшетный" - для устройств, ширина экрана которых равна или превышает 656, но меньше 1211 пикселей.
  • "Мобильный"- для устройств, ширина экрана которых меньше 656 пикселей.

Стартовая страница должна содержать следующие элементы:

  • "Шапку", содержащую ФИО студента, номер группы и номер варианта.
  • Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в отдельной таблице БД (пароль должен храниться в виде хэш-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён.

Основная страница приложения должна содержать следующие элементы:

  • Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом задания: Checkbox {'-4','-3','-2','-1','0','1','2','3','4'} для координаты по оси X, Text (-5 ... 3) для координаты по оси Y, и Checkbox {'-4','-3','-2','-1','0','1','2','3','4'} для задания радиуса области. Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию.
  • Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки.
  • Таблицу со списком результатов предыдущих проверок.
  • Ссылку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения.

Дополнительные требования к приложению:

  • Все результаты проверки должны сохраняться в базе данных под управлением СУБД PostgreSQL.
  • Для доступа к БД необходимо использовать Spring Data.

About

Лабораторные работы по веб-программированию (ИТМО, ПИиКТ-СиППО, 2 курс).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published