Package org.opencms.flex
package org.opencms.flex
Provides low-level JSP integration funtionality for OpenCms,
also implements the FlexCache, a declarative parameter-based cache.
How the JSP integration is done:
In OpenCms all resources are residing in the OpenCms Database, the so called "Virtual File System" or VFS. However, all JSP engines available read the JSP code from a file in the local file system. The option to re-write a JSP engine so that it can read from the VFS would limit OpenCms to running with this JSP engine only, which was not a choice. So the approach that was taken is to dump the contents of the OpenCms JSP page from the VFS to the "real" file system and then dispatch to the standard JSP engine.Here is a top-level description of how this works:
- OpenCms gets the request through the
OpenCmsServlet
- The requested resource is identified as a JSP page (resource type
CmsResourceTypeJsp
) - The JSP loader is started up with the resource manager
CmsResourceManager
- The JSP loader implements an additional interface:
I_CmsResourceLoader
- A resource loader is a new interface that was introduced with the FLEX release. The main
difference is that the original request / response is wrapped using a Servlet standard
HttpServletRequestWrapper
/HttpServletResponseWrapper
. - On the first call to a page, the file contents of the JSP page are read from the OpenCms VFS
using the
CmsObject
- The contents of the page are written to the "real" file system of the server,
in the default configuration to the directories
{WEBAPP-PATH}/opencms/WEB-INF/jsp/online
or{WEBAPP-PATH}/opencms/WEB-INF/jsp/offline
(depending if the request was for the online or the offline version of the page). The directory used can be configured inopencms.properties
. - After the page is written to the "real" FS, the loader dispatches to the standard JSP mechanism with a simple
include()
call. - The standard JSP mechanim will handle the JSP and deliver the output through the wrapped request / response back to OpenCms.
- OpenCms will then deliver the contents back to the user.
- Since:
- 6.0.0
- See Also:
-
ClassDescriptionRepresents a Flex bucket configuration.This class implements the FlexCache.A simple data container class for the FlexCache variations.Flex Cache configuration class.Contains the contents of a cached resource.Signals an error of the Flex cache.Key used to describe the caching behaviour of a specific resource.Controller for getting access to the CmsObject, should be used as a request attribute.Information about where to redirect to.Wrapper class for a HttpServletRequest.Contains information about the OpenCms request context required by the Flex implementation.Implementation of the
interface to allow JSPs to be loaded from the OpenCms VFS.RequestDispatcher
Describes the caching behaviour (or caching options) for a Flex request.Contains the root paths to be used for determining the buckets of a flex cache entry.Wrapper class for a HttpServletResponse, required in order to process JSPs from the OpenCms VFS.Convenience class to access the localized messages of this OpenCms package.