Из sendRedirect Javadoc :
Отправляет временный ответ перенаправления клиенту, используя указанный
URL перенаправления местоположения. Этот метод может принимать относительные URL;
Контейнер сервлета должен преобразовать относительный URL в абсолютный URL
перед отправкой ответа клиенту. Если расположение относительно
без начального символа '/' контейнер интерпретирует его как
URI текущего запроса. Если местоположение является относительным с ведущей '/'
контейнер интерпретирует его как относящийся к корню контейнера сервлета.
Из-за повторяющегося использования «относительный» в Javadoc, я подозреваю, что новый URL использует то, что он может из старого URL, а затем строит оттуда ...
В кратком изложении того, что я прочитал, следует по возможности использовать переадресацию вместо перенаправления.
См. это для хорошего объяснения перенаправления стихов вперед.
См. this для простых примеров пересылки запросов к сервлетам или JSP.
Конечно, при пересылке исходный URL-адрес останется нетронутым, поэтому он может не соответствовать тому, что вы ищете ...
EDIT
Получив информацию от milan, я нашел еще немного информации относительно фрагментов URL (материал после "#" - я не знал, что это было их официальное название, пока не переписывался с milan).
Есть еще одно сообщение SOF, в котором есть полезная информация об этом и, возможно, лучший ответ: Фрагмент URL и 302 перенаправления
У меня есть "+ 1'd" Милан за то, что он дал хорошее руководство в этом ...