Set up your web app such that you have a folder structure (relative to the context root) like so:
where skin-name is the name of each of your "skins" (or "themes" as I usually call them). The stylesheets and images for each separate theme would go in their respective folders.
Call one "default" which is used when no specific skin is specified.
Now, since the current "skin" is specific to a user, store the skin name in the session as a scoped variable named 'skinName'.
On page, do something like:
Of course you would have to do the same for each stylesheet. And you'd need to adjust the URL of any images likewsie.