What is FacesContext used for?
And where exactly is it implemented?
Quote from chapter 6.1 of JSF 2.0 specification:
FacesContext
JSF defines the
javax.faces.context.FacesContextabstract base class for representing all of the contextual information associated with processing an incoming request, and creating the corresponding response.A
FacesContextinstance is created by the JSF implementation, prior to beginning the request processing lifecycle, by a call to thegetFacesContextmethod ofFacesContextFactory, as described in Section 6.6 “FacesContextFactory”.When the request processing lifecycle has been completed, the JSF implementation will call the release method, which gives JSF implementations the opportunity to release any acquired resources, as well as to pool and recycle FacesContext instances rather than creating new ones for each request.
It is specified in class javax.faces.context.FacesContext and in Mojarra implemented in class com.sun.faces.context.FacesContextImpl and in MyFaces implemented in class org.apache.myfaces.context.servlet.FacesContextImpl.