Human Human
Как называется такой подход (как загуглить), когда есть один большой ресурс, который может модифицировать только один сеанс одного пользователя. Остальным показывается, что ресурс занят и они ждут пока, его освободят.
У вас же есть уникальная сессия пользователя
И есть условно список сервлетов через которые проходит запрос
Сделайте сервлет вначале, который будет вешать некий глобальный лок по юзерайди
Желательно чтоб глобальным локом был некий внешний сервер
Ну просто ещё одна машина где лежит таблица этих локов
В нормальном состоянии она не должна сильно расти