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.