За запрос означает, что при выполнении HTTP-запроса поток создается или извлекается из пула для его обслуживания. Один поток обслуживает весь запрос. Поток на соединение был бы тем же самым, за исключением того, что поток используется для всего соединения, которое может быть несколькими запросами и также может иметь много мертвого времени между запросами. Контейнеры сервлетов являются нитками по запросу. Могут быть некоторые реализации, которые предлагают поток для соединения, но я не знаю, и кажется, что это было бы очень расточительно.
Создание потока внутри другого потока не устанавливает никаких особых отношений, и в большинстве случаев весь смысл в том, чтобы один поток выполнял больше работы или завершал работу, пока другой поток продолжает работать. В вашем сценарии использование другого потока для выполнения работы, требуемой запросом, как вы ожидаете, позволит немедленно отправить ответ. Поток, использованный для обслуживания этого запроса, также будет немедленно доступен для другого запроса, независимо от того, сколько времени занимает выполнение другого потока. Это в значительной степени способ выполнения асинхронной работы в контейнере сервлета поток-на-запрос.
Предостережение: Если вы находитесь в полном контейнере Java EE, потоки могут управляться для вас таким образом, что плохая идея порождать ваши собственные. В этом случае лучше попросить у контейнера нить, но общие принципы те же.