FileDocCategorySizeDatePackage
JspApplicationContext.javaAPI DocGlassfish v2 API7588Fri May 04 22:34:24 BST 2007javax.servlet.jsp

JspApplicationContext

public interface JspApplicationContext
Stores application-scoped information relevant to JSP containers.

The JSP container must create a single instance of JspApplicationContext for each ServletContext instance.

An instance of JspApplicationContext is obtained by invoking the static {@link JspFactory#getJspApplicationContext} method, passing the ServletContext of the corresponding web application.

The JspApplicationContext provides the following services to JSP applications:

  • Allows registration of ELResolvers, which are used to resolve variables in EL expressions contained in JSP pages and tag files.
  • Provides an instance of ExpressionFactory for those applications or frameworks that need to perform programmatic evaluation of EL expressions instead of allowing the JSP container to do it for them.
  • Allows the attachment of ELContextListener instances for notification whenever a new ELContext is created. This is necessary when an application wishes to make custom context objects available to their pluggable ELResolvers.

see
javax.servlet.ServletContext
see
JspFactory
see
javax.el.ELResolver
see
javax.el.ExpressionFactory
see
javax.el.ELContextListener
since
JSP 2.1

Fields Summary
Constructors Summary
Methods Summary
public voidaddELContextListener(javax.el.ELContextListener listener)
Registers a ELContextListeners so that context objects can be added whenever a new ELContext is created.

At a minimum, the ELContext objects created will contain a reference to the JspContext for this request, which is added by the JSP container. This is sufficient for all the default ELResolvers listed in {@link #addELResolver}. Note that JspContext.class is used as the key to ELContext.putContext() for the JspContext object reference.

This method is generally used by frameworks and applications that register their own ELResolver that needs context other than JspContext. The listener will typically add the necessary context to the ELContext provided in the event object. Registering a listener that adds context allows the ELResolvers in the stack to access the context they need when they do a resolution.

param
listener The listener to be notified when a new ELContext is created.

public voidaddELResolver(javax.el.ELResolver resolver)
Adds an ELResolver to affect the way EL variables and properties are resolved for EL expressions appearing in JSP pages and tag files.

For example, in the EL expression ${employee.lastName}, an ELResolver determines what object "employee" references and how to find its "lastName" property.

When evaluating an expression, the JSP container will consult a set of standard resolvers as well as any resolvers registered via this method. The set of resolvers are consulted in the following order:

  • {@link javax.servlet.jsp.el.ImplicitObjectELResolver}
  • ELResolvers registered via this method, in the order in which they are registered.
  • {@link javax.el.MapELResolver}
  • {@link javax.el.ListELResolver}
  • {@link javax.el.ArrayELResolver}
  • {@link javax.el.BeanELResolver}
  • {@link javax.servlet.jsp.el.ScopedAttributeELResolver}

It is illegal to register an ELResolver after the application has received any request from the client. If an attempt is made to register an ELResolver after that time, an IllegalStateException is thrown.

This restriction is in place to allow the JSP container to optimize for the common case where no additional ELResolvers are in the chain, aside from the standard ones. It is permissible to add ELResolvers before or after initialization to a CompositeELResolver that is already in the chain.

It is not possible to remove an ELResolver registered with this method, once it has been registered.

param
resolver The new ELResolver
throws
IllegalStateException if an attempt is made to call this method after all ServletContextListeners have had their contextInitialized methods invoked.

public javax.el.ExpressionFactorygetExpressionFactory()
Returns a factory used to create ValueExpressions and MethodExpressions so that EL expressions can be parsed and evaluated.

return
A concrete implementation of the an ExpressionFactory.