Апач ничего, кроме как отдать статику, больше не умеет
всю работу выполняют либо внешние исполняемые файлы (perl), либо подключаемые библиотеки (php), либо отдельные сервера (java-server).
это не всегда так, но для примера пойдет
в общем случае, схема простая - апач настраивается так, что в зависимости или от расширения запрошенного ресурса (*.php, *.jsp), или от пути (*/servlet/*) апач определяет, кому из обработчиков отдать файл в процессинг, получает от него html, который и возвращает обратно браузеру
джава-серверов - в общем-то, немало... как фришных, так и платных - выбирать есть из чего
http://www.javaskyline.com/serv.html