Areas
Prototype and session mean that you can save the request / session state within the controller fields. However, this is not recommended and should be avoided.
If you follow common practice and avoid state in controllers, you can easily go into the singleton area (which is used by Spring Web MVC controllers by default).
If you have state in your controllers, you should go with a Prototype or session scope.
In general, I would recommend not mixing the different areas of application of the controllers. This can be very painful if you accidentally add a state field to a single-color controller because you are using the Prototype scope. You will not notice this error until several simultaneous requests / sessions go into the same field and everything breaks.
micha source share