Each user has a session associated with it. The servlet container does the binding of session to user and returns it to us.
Each session has a PageMap of pages associated with it. This means that a Page instance is not shared amongst different users.
Each page may be accessed by at most one thread at a time, but there is no guarantee it'll be the same thread. That is, a page is owned by a single user but the thread being used might change over time.
A page is owned by a pagemap, and the pagemap is owned by a session. When beginning request processing one of the first things wicket does is synchronize on the user's session so that only one request thread can process a request belonging to the same session user session.
Powered by a free Atlassian Confluence Open Source Project License granted to Apache Software Foundation. Evaluate Confluence today.