Basically AppContexts are used inside AWT to shield one application/applet from others, create seperate Event-Dispatch-Threads for each app and so on.
Originally introduced for Applets I guess, this is exactly what I was looking for. Furthermore it solves the problem of out-of-http-request access to the surface. During an http-access I of course now which session I am on - but what if an application starts its own threads? Well, now each app knows its Session, as its stored in its AppContext.
It also allows for multiple LnFs set in the same server:
