Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created October 10, 2025 10:21
Show Gist options
  • Save sunmeat/2e8e2c8d0922fb05c8ff6d8369083ef9 to your computer and use it in GitHub Desktop.
Save sunmeat/2e8e2c8d0922fb05c8ff6d8369083ef9 to your computer and use it in GitHub Desktop.
ДЗ на сервлети + кукі

Реалізувати механізм вибору теми (темної або світлої) для веб-сторінки за допомогою радіо-кнопок.

Вибір має зберігатися в кукі, щоб при повторному завантаженні сторінки тема автоматично застосовувалася, а відповідна радіо-кнопка була активною та в фокусі.

Вимоги до реалізації:

  1. Інтерфейс вибору теми:

    • Створіть дві радіо-кнопки з однаковим атрибутом name="theme":
      • Перша: значення value="dark", мітка "Темна тема" (тло — чорне або сіре, текст — світлий для читабельності).
      • Друга: значення value="light", мітка "Світла тема" (тло — біле, текст — темний для читабельності).
    • Розмістіть їх у зручній формі або блоці для користувача.
  2. Обробка вибору:

    • При натисканні на радіо-кнопку:
      • Збережіть значення (dark або light) у кукі з назвою theme (термін дії — наприклад, 7 днів).
      • Негайно застосуйте обрану тему до сторінки: змініть колір фону <body> та, за потреби, тексту.
  3. Завантаження сторінки:

    • При завантаженні (події load):
      • Прочитайте значення кукі theme.
      • Якщо кукі існує:
        • Застосуйте відповідну тему (темну або світлу).
        • Встановіть checked для відповідної радіо-кнопки.
        • Переведіть фокус (focus()) на цю радіо-кнопку.
      • Якщо кукі відсутнє, за замовчуванням оберіть світлу тему, встановіть її, поставте checked на відповідну кнопку та фокус на ній.

Додаткові рекомендації:

  • Використовуйте Java-код сервлета для роботи з кукі (і звісно, трохи JavaScript).
  • Тестуйте: закрийте вкладку, відкрийте заново — тема має відновлюватися.
  • Додайте приклад контенту на сторінці, щоб демонструвати зміну теми.

Очікуваний результат: Повнофункціональна сторінка, де користувач може обрати та зберегти тему, а при перезавантаженні все автоматично відновлюється.

Проект викласти в публічний репозиторій гітхаб, посилання на проект надіслати в коментар до цього ДЗ.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment