You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by Apache Wiki <wi...@apache.org> on 2005/12/20 01:13:36 UTC
[Beehive Wiki] Update of "Design/NetUIRequestProcess" by RichFeit
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Beehive Wiki" for change notification.
The following page has been changed by RichFeit:
http://wiki.apache.org/beehive/Design/NetUIRequestProcess
The comment on the change is:
Start of a NetUI Request Process design doc.
New page:
= NetUI Request Process =
== Introduction ==
{{{PageFlowActionServlet.process()}}}/{{{AutoRegisterActionServlet.process()}}}:
* Reinitialize reloadable class handler (bouncing a classloader if necessary). ''This is for a "reloadable page flows without redeploy" feature that isn't fully implemented/supported currently.''
* Look up the appropriate Struts module based on the request module path (e.g., "/foo/bar" for "/foo/bar/someaction.do") and ''register the Struts module if it isn't already registered''. Automatic module registration is where we look for the appropriate file under /_pageflow in the webapp classloader.
{{{PageFlowRequestProcessor.process()}}}:
* Run request interceptors (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.html RequestInterceptorContext]).
* Call back to the event reporter in the Servlet container adapter (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter]).
* Initialize the Controls context.
* Register the default URL rewriter
{{{PageFlowRequestProcessor.processInternal()}}}:
* Create a request wrapper that contains request-scoped values that our runtime uses. This is faster than sticking everything into attributes on the request. From this point on, all request-scoped flags/values are accessed through this. See [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.html PageFlowRequestWrapper].
* If this is a forwarded request, and if the "secure forwards" setting is enabled in beehive-netui-config.xml, allow the [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter] to do a security redirect to switch to https, if necessary.
* If the action was overridden by a request parameter (this is the mechanism for specifying the {{{action}}} on {{{<netui:button>}}}, forward to the appropriate action URI.
* If the request is for a page flow URI (.jpf), forward to the page flow's begin action.
* Get the Flow``Controller for this request (page flow or shared flow), and cache it in the request.
* Look up or create any shared flows that are needed for the current request (based on the current page flow and any global shared flows defined in beehive-netui-config.xml. {{{ImplicitObjectUtil.loadSharedFlow}}} puts a Map of shared flows (name -> instance) into the request at the right spot.
* Remove any current Java``Server Faces backing bean. We're in action processing now, and the user is no longer interacting with a JSF page.
* Set up all the implicit objects for databinding ({{{pageFlow}}}, etc.), through {{{ImplicitObjectUtil.loadImplicitObjects}}}.
Struts {{{RequestProcessor.process()}}}:
* TODO
Back in {{{PageFlowRequestProcessor.process()}}}:
* If this is the end of a series of forwarded requests, apply changes in the [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/handler/StorageHandler.html StorageHandler]. See [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/internal/DeferredSessionStorageHandler.html DeferredSessionStorageHandler] for more info.
* Uninitialize the Controls context.
* Call back to the event reporter in the Servlet container adapter (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter]).
* Execute any post-intercept code in registered request interceptors.