sto smanettando anch'io per capire come funziona, ho notato che se in una jsp(diciamo chiamante con all'interno un javabean) chiamo un Servlet, il quale restituisce con i comandi:

javax.servlet.ServletContext sc;
javax.servlet.RequestDispatcher rd;
sc = getServletContext();
rd = sc.getRequestDispatcher("/seconda.jsp");
rd.forward(request, response);

se a sua volta seconda.jsp apre terza.jsp.

se voglio "vedere" il bean nella terza deve per forza essere di session, se lo dichiaro di request non riesco a passarlo alla terza.