org.opencms.main
Class OpenCmsServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.opencms.main.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
Version:
$Revision: 1.68 $
Author:
Alexander Kandzior, Michael Emmerich
See Also:
CmsShell, CmsObject, OpenCms, Serialized Form

Field Summary
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
OpenCmsServlet()
           
 
Method Summary
 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
 

Field Detail

SERVLET_PARAM_DEFAULT_WEB_APPLICATION

public static final java.lang.String SERVLET_PARAM_DEFAULT_WEB_APPLICATION
Name of the DefaultWebApplication parameter in the web.xml OpenCms servlet configuration.

See Also:
Constant Field Values

SERVLET_PARAM_OPEN_CMS_HOME

public static final java.lang.String SERVLET_PARAM_OPEN_CMS_HOME
Name of the OpenCmsHome parameter in the web.xml OpenCms servlet configuration.

See Also:
Constant Field Values

SERVLET_PARAM_OPEN_CMS_SERVLET

public static final java.lang.String SERVLET_PARAM_OPEN_CMS_SERVLET
Name of the OpenCmsServlet parameter in the web.xml OpenCms servlet configuration.

See Also:
Constant Field Values

SERVLET_PARAM_WEB_APPLICATION_CONTEXT

public static final java.lang.String SERVLET_PARAM_WEB_APPLICATION_CONTEXT
Name of the WebApplicationContext parameter in the web.xml OpenCms servlet configuration.

See Also:
Constant Field Values
Constructor Detail

OpenCmsServlet

public OpenCmsServlet()
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)

getHandlerNames

public java.lang.String[] getHandlerNames()
Description copied from interface: I_CmsRequestHandler
Returns the handler name.

Specified by:
getHandlerNames in interface I_CmsRequestHandler
Returns:
the handler name
See Also:
I_CmsRequestHandler.getHandlerNames()

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