A Servlet S1 forwards a request to Servlet S2. The BEST way for Servlet S1 to pass data to Servlet S2 is by saving the data to a) A Cookie. b) The request object. c) The ServletContext. d) The HttpSession object.
I would suggest the answer is b) the request object. This is because it is only valid for the scope of the request. Storing in the ServletContext could mean that another servlet could over-write the data. Storing in Cookies makes no sense - these are for passing data to the client. Storing in a Session would work but it would mean that the data would persist for the duration of the session which is probably not appropriate.
The best way is allways the way with the least possible side-effects. So its request. The narrowest scope which can be used to pass the information should normally have the least possible side-effects.
A sonic boom would certainly ruin a giant souffle. But this tiny ad would protect it: