Thanks for your reply.
From what I've read, a servlet object is created only once when the server is launched, not for every client session. Some tutorials are somewhat confusing: the user's information are stored in a pair of attributes (username, password) of the servlet, which means that all the users will actually share the same information. It does not make sense. Anyway, calling getThreadLocalRequest() is the best way to know which user the request is sent from?
GWT is compiled into JS. All you can do on the client side is choose a file and upload to the server.
For instance, in the client side I have the following java code:
It is what I meant by "preprocessing".