En la sesion sólo se deben meter en principio variables que vayan a ser necesitadas durante toda las sesión del usuario, como puede ser el nombre de usuario y cosas así, esas varaibles serán compartidas por todos los servlets.
Si lo que quieres es sólo que un servlet pase una variable sólo a otro y en ese caso concreto, eso sería contaminar la sesión.
Existen dos formas comunes de resolver eso (aunque hay alguna más)
Lo típico es como parámetro en el método GET con...
response.sendRedirect ( "MiServlet2?variable1=valor1&variable2=valor2" );
Eso sería estático, obviamente puedes introducir variables previamente recuperadas por request como por ejemplo:
response.sendRedirect ( "MiServlet2?variable1="+valor1+"&variable2="+valor2 );
o como a tí se te ocurra.
Para casos muy concretos se usa lo siguiente
HttpRequestDispatcher rd = request.getDispatcher( "MiServlet2" );
rd.forward(request,response);
creo que era así, si no pues busca documentación sobre HttpRequestDispatcher
Eso reenvía automáticamente todas las variables recibidas por el servlet. Tiene sus ventajas e inconvenientes a los que no voy a entrar.