Насколько я понимаю, ваша главная проблема с JSESSIONID в URL - это общая длина.
Возможно, вам стоит поближе взглянуть на то, почему длина URL-адресов слишком велика. Поскольку у вас уже есть сеанс, не исключено, что вы можете переместить некоторые параметры GET в сеанс. Существует также множество различных способов создания более коротких URL-адресов для страниц (например, mod_rewrite).
Что касается безопасности, JSESSIONID так же уязвим с HTTP GET, как и HTTP POST. Кодирование base64 HTTP POST не является мерой безопасности вообще. Лучший способ получить немного больше безопасности - это зашифровать транспортный канал через TLS / SSL, фактически включив HTTPS. Это гарантирует, что подслушивающий (или человек в середине атаки) не будет иметь доступа к простому тексту.