Tell us about the @ViewScoped, @SessionScoped, @CustomScoped and @RequestScoped annotations.

* @ViewScoped : means that a managed bean exists over the lifetime of the JSF view (while the page is being shown).
 
* @SessionScoped : The bean will be available throughout the HTTP session.
 
* @CustomScoped : the bin will live for as long as it is in the Map, which is created to control the lifetime of the beans.
 
* @RequestScoped : The bean exists for the life of the request-response (HTTP request-response).