Confusión sobre el comportamiento del objeto de solicitud.

He estado jugando con servlets y JSP y estoy un poco confundido con algo:

He hecho un servlet (controlador) que enviaría la solicitud a un JSP

He establecido algunos atributos para el objeto de solicitud utilizando el método setAttribute () en mi servlet.

Puedo acceder a los parámetros y atributos del objeto de solicitud dentro de la JSP sin ningún
problema.

Ahora he almacenado el objeto de solicitud como un atributo en el objeto de sesión usando
session.setAttribute ("test", solicitud).

He escrito un segundo JSP (navegar desde el primer JSP sería a través de
Javascript cuando hago clic en un botón en particular, usando la función window.location y
dando la dirección de la segunda JSP como el valor)

En el segundo JSP, cuando recupero el objeto de solicitud del objeto de sesión, obtengo un
Valor nulo de todos los atributos del objeto de solicitud recuperado.Puedo acceder a los parámetros del objeto de solicitud recuperado PERO solo si lo he recuperado
los parámetros al menos una vez en mi primer JSP usando el método request.getParameter ()
De lo contrario vuelven nulos en mi segundo JSP.

Soy realmente nuevo en estas cosas y estoy confundido acerca de este comportamiento. ¿Por qué se 'borraron' los atributos de mi objeto de solicitud mientras los parámetros permanecen intactos (siempre que haya accedido a los parámetros en mi primera JSP; lo que es aún más desconcertante para mí ya que no tiene sentido IMO)?

Cualquier explicación sería apreciada! Agradeciendotelo de antemano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta