Hola:
El comportamiento de tu aplicación es normal.
No importa q el id del objeto session después de hacerle un invalidate() siga siendo el mismo, puesto q la sesión deja de estar registrada en el servidor.
Si lo q quieres es regenerar el sessionId, y q se le mande una nueva cookie al navegador, lo puedes hacer así:
Código JSP:
Ver original<%
HttpSession session = request.getSession(true);
System.out.print("Antes de eliminar session: "+session.getId());
session.invalidate();
session = request.getSession(true); // <----- Se acaba de crear una nueva sesión
System.out.print("ID de la nueva session: "+session.getId());
response.sendRedirect("login.jsp");
%>
puedes verificar q se le envía una nueva cookie al navegador con el Id de la sesión recién creada.
No se q servidor de aplicaciones estás usando, en tomcat ese código es suficiente, en jboss es necesario cambiar algunos parámetros de configuración en el servidor (de los cuales no puedo acordarme ahora).
Este link te puede ayudar:
http://www.koelnerwasser.de/?p=11
slds;
Nup_