+7 (812) 703-02-02 info@hse.spbstu.ru
18.01.2022 19:00 День открытых дверей программ профессиональной переподготовки
Для участия нужна регистрация...

DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений

Длительность дисциплины: 40 ак.ч.


Аннотация

Курс представляет собой третью часть линейки курсов, посвященной основам практического программирования на платформе Java. Данный курс посвящен основам разработки многоуровневых приложений на основе платформы Java. Основное внимание уделяется изучению стандартных приемов работы с базами данных на основе JDBC, основам сетевого и web-программирования. Также отдельное внимание уделяется изучению основ многопоточного программирования.

Курс рассчитан как на начинающих программистов, так и программистов с опытом, желающих освоить новый для себя язык программирования.

Основные цели курса:

  • ознакомиться с архитектурой распределенных приложений;
  • изучить базовые приемы работы с базами данных на основе JDBC;
  • научиться реализовывать обмен данными по сетям на основе протоколов UDP и TCP/IP;
  • освоить основные приемы многопоточного программирования;
  • изучить технологию разработки web-приложений, основанных на использовании сервлетов.

Знания и умения, полученные в результате изучения

По окончании данного курса вы будете уметь:

  • понимать принципы организации баз данных и знать основные виды баз данных;
  • уметь строить простейшие Java-приложения с использованием доступа к реляционным базам данных на основе JDBC;
  • уметь выполнять запросы к базам данных, обрабатывать результаты запросов и модифицировать данные в базе данных;
  • понимать принципы сетевого взаимодействия приложений и базовые термины, такие как сеть, протокол обмена, IP-адрес и сокет;
  • быть в состоянии проектировать простейшие сетевые приложения;
  • знать и уметь правильно использовать классы, разработанные для сетевого обмена данными на основе протоколов UDP и TCP/IP;
  • уметь писать простейшие многопоточные приложения;
  • создавать простейшие web-приложения на основе сервлетов.

Содержание дисциплины

Модуль 1. Обзор общих принципов построения многоуровневых приложений

  • Общие термины и понятия. Понятие о сетевой архитектуре. Общие представления о процессе передачи данных по сети. Сетевые протоколы. Классификация протоколов. IP-адресация. Сокет. Принципы построения многоуровневых приложений
  • Обзор стандартных пакетов платформы Java, предназначенных для работы с базами данных и сетевого взаимодействия приложений
Темы практических занятий:
  • По данной теме практических занятий не предусмотрено

Модуль 2. Работа с базами данных на основе JDBC

  • Основные термины и понятия. Классификация баз данных. Системы управления базами данных (СУБД)
  • Основные характеристики и особенности реляционных баз данных
  • Основные сведения об языке SQL. Подмножества языка SQL. Основные типы запросов.
  • Драйверы к базам данных. Основы использования класса DriverManager. Определение строки подключения. Способы загрузки драйвера. Подключение к базе данных.
  • Основные типы исключений, которые могут возбуждаться при работе с базами данных
  • Обзор пакета java.sql
  • Основные методы интерфейса Connection
  • Изучение основных методов интерфейсов Statement, PreparedStatement и CallableStatement
  • Изучение интерфейса ResultSet. Знакомство с интерфейсом ResultSetMetaData
  • Модификация приложения "JHelp" для работы с базой данных
Темы практических занятий:
  • Разработка структуры и создание учебной базы данных JHelp. Разработка и выполнение простейших запросов на выборку, добавление, изменение и удаление данных. Написание программы, подсоединяющейся к базе данных JHelp. Демонстрация использования основных методов интерфейса Statement. Демонстрация использования основных методов интерфейса PreparedStatement. Демонстрация стандартного алгоритма обработки данных с использованием реализации интерфейса ResultSet.
  • Модификация приложения JHelp для работы с базой данных JHelp

Модуль 3. Основы сетевого программирования

  • Общие принципы построения сетевых приложений. Типичные задачи и основные отличия сетевых приложений Основные классы пакета java.net.
  • Основные методы и способы использования классов InetAddress и URL
Темы практических занятий:
  • Демонстрация использования класса InetAddress. Реализация простейшего браузера на основе класса URL

Модуль 4. Обмен данными на основе протокола UDP

  • Особенности передачи данных по протоколу UDP
  • Назначение и основные методы класса DatagramPacket
  • Назначение и основные методы класса DatagramSocket
  • Простейший алгоритм обмена данными по протоколу UDP
  • Пример реализации приложения с обменом данными по протоколу UDP
Темы практических занятий:
  • Реализация простейшего приложения для обмена данными по протоколу UDP

Модуль 5. Обмен данными на основе протокола TCP/IP

  • Особенности передачи данных по протоколу TCP/IP
  • Назначение и основные методы класса Socket
  • Простейший алгоритм обмена данными по протоколу TCP/IP на стороне клиента
  • Назначение и основные методы класса ServerSocket
  • Простейший алгоритм обмена данными по протоколу TCP/IP на стороне сервера
  • Пример реализации приложения с обменом данными по протоколу TCP/IP
Темы практических занятий:
  • Реализация простейшего приложения для обмена данными по протоколу TCP/IP. Модификация приложения JHelp для работы с использованием протокола TCP/IP

Модуль 6. Основы многопоточного программирования

  • Основные понятия и главные принципы многопоточного программирования.
  • Встроенные средства управления потоками и методы межпоточного взаимодействия
  • Использование класса Thread и интерфейса Runnable. Методы, определяющие жизненный цикл потока
  • Способы синхронизации и блокировки потоков
Темы практических занятий:
  • Демонстрация многопоточного приложения на примере простейшего сервера, работающего с несколькими клиентами по протоколу TCP/IP

Модуль 7. Построение простейшего web-приложения на основе сервлета

  • Основные сведения о принципах работы и структуре web-приложения. Методы передачи данных от клиента серверу
  • Основные методы и общий алгоритм использования класса HttpServlet
  • Основные методы интерфейса HttpServletRequest
  • Основные методы интерфейса HttpServletResponse
  • Основные методы и общий алгоритм использования класса Cookie
  • Основные методы интерфейса HttpSession
  • Развертывание web-приложения
Темы практических занятий:
  • Реализация простейшего web-приложения на основе сервлета. Модификация приложения JHelp для работы в качестве web-приложения

Модуль 8. Завершающий обзор рассмотренных методов и технологий разработки многоуровневых приложений на основе платформы Java

Итоговая работа:

  • сетевое приложение JHelp с графическим пользовательским интерфейсом и хранением информации в базе данных.