Сегодня провел очередное занятие по Java. 
Чем мы занимались сегодня?

Запускали сервлеты и JSP. Базовые принципы работы сервлетов разобрали еще на прошлом занятии, но поработать получилось не у всех. На этот раз каждый запустил Tomcat, сервлетик и посмотрел на  JSP-ку. Для начала вполне достаточно. Дальше при желании раскопают, студенты -- народ умный.

Для обучения подготовил небольшую "игровую площадку" которая содержала:

  • Apache Tomcat
  • Apache Ant
  • Простенькое Web приложение с сервлетом и JSP-файлом.

В build.xml прописал ant-овскую задачу которая деплоит WAR-ик в Apache Tomcat после компиляции. Для того чтобы ознакомиться и поиграться вполне достаточно. Человек может внести изменения в сервлет, собрать ant-ом и развернуть на сервере. Минимум телодвижений, если не использовать IDE.

Кстати насчет IDE. Сейчас стараюсь придерживаться нейтральной позиции. Думаю со временем сами поймут и выберут то, что им больше нравится.  Сказал, что во многих нормальных IDE для Java существует возможность интеграции с Tomcat, информацию лучше смотреть на сайтах Eclipse, NetBeans и т.д.. Скорее всего, кто заинтересовался дальше  разберется. Поиском в интернете студенты владеют достаточно хорошо.

Вторую половину пары разбирали простые классы из Java Collection Framework - Set, List, Map, Iterator и т.д.

Сказал, что Set - нечто, очень похожее на понятие множество (привычное и знакомое всем физтехам). Забыл сказать самое главное, что Set не содержит дубликатов. Постараюсь  на следующем занятии упомянуть об этом, а то не хорошо как-то.

Затем сделали пару списков (List-ов) -- ArrayList, LinkedList. Показал как пользоваться Collections.sort. Вроде многим понравилось.

Под конец занятия поигрались с Map. Рассказал про три имплементации Map -- HashMap,TreeMap, LinkedHashMap, но экспериментировали только с HashMap и LinkedHashMap, посмотрели различия. Когда зaполнили HashMap, а затем вывели ключи из  него, многие начали возмущаться, что они в стрёмном каком-то порядке выводятся. Принцип устройства хэш-таблицы я рассказывать не стал, для таких базовых вещей на физтехе у нас отдельный курс был, на нём все основные структуры, алгоритмы сортировки и прочие "must know" понятия объяснялись. Когда я учился, он тогда назывался "Технология программирования", помню до сих пор как нужно было хэш-таблицу (и другие фишечки) самому написать к зачету, на всю жизнь запомнил (кстати очень полезный курс оказался).

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

Тему конкурентного доступа и работу с нитками не трогали, так что углубляться в другие реализации коллекций не стал. Просто коллекции нужны уже сейчас, по крайне мере базовые знания о них, а если грузить по полной, это только пугать и путать сейчас.