I'm going to move this
thread to our Cattle Drive forum, since it's directly about one of the Cattle Drive assignments. Plus we don't get much traffic over here, and I get lonely.
So, as Bear was saying, nothing magically persists in the background for you. However, Java servlet containers (like Orion, which we use for the assignments) can maintain a session on behalf of each user. When new requests come in, the servlet tries to match them up with an existing session. In your servlet, you can retrieve the session (from the request object) and store things in it. The next request handled by that servlet, or any other servlet, can retrieve the session and see what's stored in there. The request object also has user-settable attributes, so you can store objects as attributes and then if you forward the request to another servlet or
JSP for handling, it can read the attributes. However, once the request has been processed, those attributes are effectively gone. The assignments use request attributes a lot for handling error messages and other output.
Your video list, in real life, would be stored in a database, with maybe a copy in a session, or in a managed cache to reduce slow database hits. I don't have the assignment official solution in front of me, but I believe what we do there is just store it in static member data of the Video servlet. That's completely unrealistic since it means multiple users of the application would be working from the same list, and we're not even making any attempt to synchronize access to it. However, these are supposed to be simple examples and so they take some shortcuts.