A web request for
http://serverName/appname/faces/some.jspx
arrives from the client to the application server.The
ADFBindingFilter
object looks for the ADF binding context in the HTTP session, and if it is not yet present, initializes it for the first time. Some of the functions of the ADFBindingFilter
include finding the name of the binding context metadata file, and finding and constructing an instance of each data control
The
ADFBindingFilter
object invokes the beginRequest()
method on each data control participating in the request. This method gives the data control a notification at the start of every request so that it can perform any necessary setup.The JSF
Lifecycle
object, which is responsible for orchestrating the standard processing phases of each request, notifies the ADFPhaseListener
class during each phase of the lifecycle, so that it can perform custom processing to coordinate the JSF lifecycle with the ADF Model data binding layer. For more information about the details of the JSF and ADF page lifecycle phases.The FacesServlet
class (in javax.faces.webapp
), configured in the web.xml
file of a JSF application, is responsible for initially creating the JSF Lifecycle
class (in javax.faces.lifecycle
) to handle each request. However, since it is the Lifecycle
class that does all the interesting work, the FacesServlet
class is not shown in the diagram.The
ADFPhaseListener
object creates an ADF PageLifecycle
object to handle each request and delegates appropriate before and after phase methods to corresponding methods in the ADF PageLifecycle
class. If the appropriate binding container for the page has never been used before during the user's session, it is created.created.
The first time an application module data control is referenced during the request, it acquires an instance of the application module from the application module pool.
The JSF
Lifecycle
object forwards control to the page to be rendered.The UI components on the page access value bindings and iterator bindings in the page's binding container and render the formatted output to appear in the browser.
The
ADFBindingFilter
object invokes the endRequest()
method on each data control participating in the request. This method gives a data control notification at the end of every request, so that they can perform any necessary resource cleanup.An application module data control uses the
endRequest
notification to release the instance of the application module back to the application module pool.The user sees the resulting page in the browser.
0 comments:
Post a Comment