Class OpenCmsServlet

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, I_CmsRequestHandler
    Direct Known Subclasses:
    OpenCmsServletErrorHandler

    public class OpenCmsServlet
    extends javax.servlet.http.HttpServlet
    implements I_CmsRequestHandler
    This the main servlet of the OpenCms system.

    From here, all operations that are results of HTTP requests are invoked. Any incoming request is handled in multiple steps:

    1. The requesting CmsUser is authenticated and a CmsObject with this users context information is created. This CmsObject is used to access all functions of OpenCms, limited by the authenticated users permissions. If the user is not identified, it is set to the default user, usually named "Guest".
    2. The requested CmsResource is loaded into OpenCms and depending on its type (and the users persmissions to display or modify it), it is send to one of the OpenCms I_CmsResourceLoader implementations do be processed.
    3. The I_CmsResourceLoader will then decide what to do with the contents of the requested CmsResource. In case of a JSP resource the JSP handling mechanism is invoked with the CmsJspLoader, in case of an image (or another static resource) this will be returned by the CmsDumpLoader etc.
    Since:
    6.0.0
    See Also:
    CmsShell, CmsObject, OpenCms, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.ThreadLocal<javax.servlet.http.HttpServletRequest> currentRequest
      The current request in a threadlocal.
      static java.lang.String HANDLE_GWT
      GWT RPC services suffix.
      static java.lang.String HANDLE_PATH
      Handler prefix.
      static java.lang.String SERVLET_PARAM_DEFAULT_WEB_APPLICATION
      Name of the DefaultWebApplication parameter in the web.xml OpenCms servlet configuration.
      static java.lang.String SERVLET_PARAM_OPEN_CMS_HOME
      Name of the OpenCmsHome parameter in the web.xml OpenCms servlet configuration.
      static java.lang.String SERVLET_PARAM_OPEN_CMS_SERVLET
      Name of the OpenCmsServlet parameter in the web.xml OpenCms servlet configuration.
      static java.lang.String SERVLET_PARAM_WEB_APPLICATION_CONTEXT
      Name of the WebApplicationContext parameter in the web.xml OpenCms servlet configuration.
    • Constructor Summary

      Constructors 
      Constructor Description
      OpenCmsServlet()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void doGet​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
      OpenCms servlet main request handling method.
      void doPost​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
      OpenCms servlet POST request handling method, will just call doGet(HttpServletRequest, HttpServletResponse).
      java.lang.String[] getHandlerNames()
      Returns the handler name.
      void handle​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res, java.lang.String name)
      Handles an OpenCms request.
      void init​(javax.servlet.ServletConfig config)  
      protected void invokeHandler​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
      Manages requests to internal OpenCms request handlers.
      protected void openErrorHandler​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res, int errorCode)
      Displays an error code handler loaded from the OpenCms VFS, or if such a page does not exist, displays the default servlet container error code.
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class javax.servlet.GenericServlet

        destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • doGet

        public void doGet​(javax.servlet.http.HttpServletRequest req,
                          javax.servlet.http.HttpServletResponse res)
                   throws java.io.IOException,
                          javax.servlet.ServletException
        OpenCms servlet main request handling method.

        Overrides:
        doGet in class javax.servlet.http.HttpServlet
        Throws:
        java.io.IOException
        javax.servlet.ServletException
        See Also:
        HttpServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
      • doPost

        public void doPost​(javax.servlet.http.HttpServletRequest req,
                           javax.servlet.http.HttpServletResponse res)
                    throws java.io.IOException,
                           javax.servlet.ServletException
        OpenCms servlet POST request handling method, will just call doGet(HttpServletRequest, HttpServletResponse).

        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        java.io.IOException
        javax.servlet.ServletException
        See Also:
        HttpServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
      • handle

        public void handle​(javax.servlet.http.HttpServletRequest req,
                           javax.servlet.http.HttpServletResponse res,
                           java.lang.String name)
                    throws java.io.IOException,
                           javax.servlet.ServletException
        Description copied from interface: I_CmsRequestHandler
        Handles an OpenCms request.

        Specified by:
        handle in interface I_CmsRequestHandler
        Parameters:
        req - the current request
        res - the current response
        name - the handler name to invoke
        Throws:
        java.io.IOException - in case an error occurs
        javax.servlet.ServletException - in case an error occurs
        See Also:
        I_CmsRequestHandler.handle(HttpServletRequest, HttpServletResponse, String)
      • init

        public void init​(javax.servlet.ServletConfig config)
                  throws javax.servlet.ServletException
        Specified by:
        init in interface javax.servlet.Servlet
        Overrides:
        init in class javax.servlet.GenericServlet
        Throws:
        javax.servlet.ServletException
        See Also:
        Servlet.init(javax.servlet.ServletConfig)
      • invokeHandler

        protected void invokeHandler​(javax.servlet.http.HttpServletRequest req,
                                     javax.servlet.http.HttpServletResponse res)
                              throws java.io.IOException,
                                     javax.servlet.ServletException
        Manages requests to internal OpenCms request handlers.

        Parameters:
        req - the current request
        res - the current response
        Throws:
        javax.servlet.ServletException - in case an error occurs
        javax.servlet.ServletException - in case an error occurs
        java.io.IOException - in case an error occurs
      • openErrorHandler

        protected void openErrorHandler​(javax.servlet.http.HttpServletRequest req,
                                        javax.servlet.http.HttpServletResponse res,
                                        int errorCode)
                                 throws java.io.IOException,
                                        javax.servlet.ServletException
        Displays an error code handler loaded from the OpenCms VFS, or if such a page does not exist, displays the default servlet container error code.

        Parameters:
        req - the current request
        res - the current response
        errorCode - the error code to display
        Throws:
        java.io.IOException - if something goes wrong
        javax.servlet.ServletException - if something goes wrong