Сегодня провел очередное занятие по 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.
Тему конкурентного доступа и работу с нитками не трогали, так что углубляться в другие реализации коллекций не стал. Просто коллекции нужны уже сейчас, по крайне мере базовые знания о них, а если грузить по полной, это только пугать и путать сейчас.