1. A method for rendering a graphical user interface (GUI), comprising: providing for the representation of the GUI as a plurality of objects, wherein each object of the plurality of objects represents a control in the GUI, wherein each said object is associated with one or more states in a lifecycle of the control, wherein the state information of each said object can be persisted using a state management persistence mechanism; receiving, from a client, a request to render the GUI, wherein the request contains the state information for each said object; generating a logical hierarchy for the plurality of objects, in a container, using metadata, wherein the metadata is based on one or more definitions in a page description language, and wherein the metadata includes information about properties, events, and model binding that have values set in page descriptions; using a control state reader chain to read the state information in the request, wherein the control state reader chain contains one or more control state readers, wherein each control state reader operates to read the state information for at least one said object, and wherein the container can find a corresponding control state reader for a particular control; updating the logical hierarchy based on the state information; and generating a response based on the updated logical hierarchy and returning the response to the client.