Static methods that allocate and cache JXPathContexts bound to PageContext,
ServletRequest, HttpSession and ServletContext.
The JXPathContext returned by
JXPathServletContexts.getPageContext getPageContext() provides access to all scopes via the PageContext.findAttribute()
method. Thus, an expression like "foo" will first look for the attribute
named "foo" in the "page" context, then the "request" context, then
the "session" one and finally in the "application" context.
If you need to limit the attibute lookup to just one scope, you can use the
pre-definded variables "page", "request", "session" and "application".
For example, the expression "$session/foo" extracts the value of the
session attribute named "foo".
Following are some implementation details. There is a separate JXPathContext
for each of the four scopes. These contexts are chained according to the
nesting of the scopes. So, the parent of the "page" JXPathContext is a
"request" JXPathContext, whose parent is a "session" JXPathContext (that is
if there is a session), whose parent is an "application" context.
The XPath context node for each context is the corresponding object:
PageContext, ServletRequest, HttpSession or ServletContext. This feature can
be used by servlets. A servlet can use one of the methods declared by this
class and work with a specific JXPathContext for any scope.
Since JXPath chains lookups for variables and extension functions, variables
and extension function declared in the outer scopes are also available in
the inner scopes.
Each of the four context declares exactly one variable, the value of which
is the corresponding object: PageContext, etc.
The "session" variable will be undefined if there is no session for this
servlet. JXPath does not automatically create sessions.
author: Dmitri Plotnikov version: $Revision: 1.6 $ $Date: 2004/05/08 15:10:49 $ |