Class SlingServletContext

  • All Implemented Interfaces:
    javax.servlet.ServletContext

    public class SlingServletContext
    extends Object
    implements javax.servlet.ServletContext
    The SlingServletContext class is the ServletContext which is registered as a service usable by servlets and helpers inside Sling. Most methods just call into the servlet context in which the SlingMainServlet is running.
    MIME Type Mapping
    Just forwards to the servlet context of the SlingMainServlet for MIME type mapping.
    Resources
    This class provides access to the resources in the web application by means of the respective resource accessor methods. These are not the same resources as available through the ResourceResolver.
    Request Dispatcher
    The getRequestDispatcher(String) method returns a SlingRequestDispatcher which may dispatch a request inside sling without going through the servlet container. The getNamedDispatcher(String) method returns a servlet container request dispatcher which always goes through the servlet container.
    Parameters and Attributes
    Initialization parameters and context attributes are shared with the servlet context in which the SlingMainServlet is running.
    Logging
    Logging is diverted to a logger whose name is the fully qualified name of this class.

    This class implements the Servlet API 3.0 ServletContext interface.

    • Constructor Detail

      • SlingServletContext

        public SlingServletContext​(org.osgi.framework.BundleContext bundleContext,
                                   org.apache.sling.engine.impl.SlingMainServlet slingMainServlet)
        Creates an instance of this class delegating some methods to the given SlingMainServlet. In addition the new instance is registered as aServletContext.

        This method must only be called after the sling main servlet has been fully initialized. Otherwise the getServletContext() method may cause a NullPointerException !

        Parameters:
        bundleContext - the OSGi Bundle Context
        slingMainServlet - the main servlet
        See Also:
        dispose()
    • Method Detail

      • register

        public void register​(org.osgi.framework.BundleContext bundleContext)
      • getServletContextName

        public String getServletContextName()
        Returns the name of the servlet context in which Sling is configured. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getServletContextName in interface javax.servlet.ServletContext
      • getContextPath

        public String getContextPath()
        Returns the context path of the web application. (Servlet API 2.5)
        Specified by:
        getContextPath in interface javax.servlet.ServletContext
      • getInitParameter

        public String getInitParameter​(String name)
        Returns the init-param of the servlet context in which Sling is configured. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getInitParameter in interface javax.servlet.ServletContext
      • getInitParameterNames

        public Enumeration<String> getInitParameterNames()
        Returns the names of the init-params of the servlet context in which Sling is configured. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getInitParameterNames in interface javax.servlet.ServletContext
      • getAttribute

        public Object getAttribute​(String name)
        Returns the named servlet context attribute. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getAttribute in interface javax.servlet.ServletContext
      • getAttributeNames

        public Enumeration<String> getAttributeNames()
        Returns the names of all servlet context attributes. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getAttributeNames in interface javax.servlet.ServletContext
      • removeAttribute

        public void removeAttribute​(String name)
        Removes the named servlet context attribute. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        removeAttribute in interface javax.servlet.ServletContext
      • setAttribute

        public void setAttribute​(String name,
                                 Object object)
        Sets the name servlet context attribute to the requested value. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        setAttribute in interface javax.servlet.ServletContext
      • getServerInfo

        public String getServerInfo()
        Returns the Sling server info string. This is not the same server info string as returned by the servlet context in which Sling is configured.
        Specified by:
        getServerInfo in interface javax.servlet.ServletContext
      • getMajorVersion

        public int getMajorVersion()
        Returns the major version number of the Servlet API supported by the servlet container in which Sling is running. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getMajorVersion in interface javax.servlet.ServletContext
      • getMinorVersion

        public int getMinorVersion()
        Returns the minor version number of the Servlet API supported by the servlet container in which Sling is running. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getMinorVersion in interface javax.servlet.ServletContext
      • getMimeType

        public String getMimeType​(String file)
        Returns a MIME type for the extension of the given file name. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getMimeType in interface javax.servlet.ServletContext
      • getRequestDispatcher

        public javax.servlet.RequestDispatcher getRequestDispatcher​(String path)
        Returns a SlingRequestDispatcher for the given path if not null. Otherwise null is returned.
        Specified by:
        getRequestDispatcher in interface javax.servlet.ServletContext
      • getNamedDispatcher

        public javax.servlet.RequestDispatcher getNamedDispatcher​(String name)
        Returns a servlet container request dispatcher for the named servlet. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getNamedDispatcher in interface javax.servlet.ServletContext
      • getResource

        public URL getResource​(String path)
                        throws MalformedURLException
        Returns the URI for the given path. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getResource in interface javax.servlet.ServletContext
        Throws:
        MalformedURLException
      • getResourceAsStream

        public InputStream getResourceAsStream​(String path)
        Returns an input stream to the given path. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getResourceAsStream in interface javax.servlet.ServletContext
      • getResourcePaths

        public Set<String> getResourcePaths​(String parentPath)
        Returns a set of names for path entries considered children of the given path. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getResourcePaths in interface javax.servlet.ServletContext
      • getRealPath

        public String getRealPath​(String path)
        Returns the real file inside the web application to which the given path maps or null if no such file exists. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getRealPath in interface javax.servlet.ServletContext
      • log

        public void log​(String message,
                        Throwable throwable)
        Logs the message and optional throwable at error level to the logger
        Specified by:
        log in interface javax.servlet.ServletContext
      • log

        public void log​(String message)
        Logs the message at info level to the logger
        Specified by:
        log in interface javax.servlet.ServletContext
      • log

        @Deprecated
        public void log​(Exception exception,
                        String message)
        Deprecated.
        Logs the message and optional exception at error level to the logger
        Specified by:
        log in interface javax.servlet.ServletContext
      • getContext

        public javax.servlet.ServletContext getContext​(String uripath)
        Returns the servlet context from the servlet container in which sling is running. This method calls on the ServletContext in which the SlingMainServlet is running.
        Specified by:
        getContext in interface javax.servlet.ServletContext
      • getServlet

        @Deprecated
        public javax.servlet.Servlet getServlet​(String name)
        Deprecated.
        Returns null as defined in Servlet API 2.4
        Specified by:
        getServlet in interface javax.servlet.ServletContext
      • getServletNames

        @Deprecated
        public Enumeration<String> getServletNames()
        Deprecated.
        Returns an empty enumeration as defined in Servlet API 2.4
        Specified by:
        getServletNames in interface javax.servlet.ServletContext
      • getServlets

        @Deprecated
        public Enumeration<javax.servlet.Servlet> getServlets()
        Deprecated.
        Returns an empty enumeration as defined in Servlet API 2.4
        Specified by:
        getServlets in interface javax.servlet.ServletContext
      • getEffectiveMajorVersion

        public int getEffectiveMajorVersion()
        Specified by:
        getEffectiveMajorVersion in interface javax.servlet.ServletContext
      • getEffectiveMinorVersion

        public int getEffectiveMinorVersion()
        Specified by:
        getEffectiveMinorVersion in interface javax.servlet.ServletContext
      • setInitParameter

        public boolean setInitParameter​(String name,
                                        String value)
        Specified by:
        setInitParameter in interface javax.servlet.ServletContext
      • getSessionCookieConfig

        public javax.servlet.SessionCookieConfig getSessionCookieConfig()
        Specified by:
        getSessionCookieConfig in interface javax.servlet.ServletContext
      • setSessionTrackingModes

        public void setSessionTrackingModes​(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
        Specified by:
        setSessionTrackingModes in interface javax.servlet.ServletContext
      • getDefaultSessionTrackingModes

        public Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
        Specified by:
        getDefaultSessionTrackingModes in interface javax.servlet.ServletContext
      • getEffectiveSessionTrackingModes

        public Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
        Specified by:
        getEffectiveSessionTrackingModes in interface javax.servlet.ServletContext
      • getJspConfigDescriptor

        public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
        Specified by:
        getJspConfigDescriptor in interface javax.servlet.ServletContext
      • getClassLoader

        public ClassLoader getClassLoader()
        Specified by:
        getClassLoader in interface javax.servlet.ServletContext
      • declareRoles

        public void declareRoles​(String... roleNames)
        Specified by:
        declareRoles in interface javax.servlet.ServletContext
      • addServlet

        public javax.servlet.ServletRegistration.Dynamic addServlet​(String servletName,
                                                                    String className)
        Specified by:
        addServlet in interface javax.servlet.ServletContext
      • addServlet

        public javax.servlet.ServletRegistration.Dynamic addServlet​(String servletName,
                                                                    javax.servlet.Servlet servlet)
        Specified by:
        addServlet in interface javax.servlet.ServletContext
      • addServlet

        public javax.servlet.ServletRegistration.Dynamic addServlet​(String servletName,
                                                                    Class<? extends javax.servlet.Servlet> servletClass)
        Specified by:
        addServlet in interface javax.servlet.ServletContext
      • createServlet

        public <T extends javax.servlet.Servlet> T createServlet​(Class<T> clazz)
        Specified by:
        createServlet in interface javax.servlet.ServletContext
      • getServletRegistration

        public javax.servlet.ServletRegistration getServletRegistration​(String servletName)
        Specified by:
        getServletRegistration in interface javax.servlet.ServletContext
      • getServletRegistrations

        public Map<String,​? extends javax.servlet.ServletRegistration> getServletRegistrations()
        Specified by:
        getServletRegistrations in interface javax.servlet.ServletContext
      • addFilter

        public javax.servlet.FilterRegistration.Dynamic addFilter​(String filterName,
                                                                  String className)
        Specified by:
        addFilter in interface javax.servlet.ServletContext
      • addFilter

        public javax.servlet.FilterRegistration.Dynamic addFilter​(String filterName,
                                                                  javax.servlet.Filter filter)
        Specified by:
        addFilter in interface javax.servlet.ServletContext
      • addFilter

        public javax.servlet.FilterRegistration.Dynamic addFilter​(String filterName,
                                                                  Class<? extends javax.servlet.Filter> filterClass)
        Specified by:
        addFilter in interface javax.servlet.ServletContext
      • createFilter

        public <T extends javax.servlet.Filter> T createFilter​(Class<T> clazz)
        Specified by:
        createFilter in interface javax.servlet.ServletContext
      • getFilterRegistration

        public javax.servlet.FilterRegistration getFilterRegistration​(String filterName)
        Specified by:
        getFilterRegistration in interface javax.servlet.ServletContext
      • getFilterRegistrations

        public Map<String,​? extends javax.servlet.FilterRegistration> getFilterRegistrations()
        Specified by:
        getFilterRegistrations in interface javax.servlet.ServletContext
      • addListener

        public void addListener​(String className)
        Specified by:
        addListener in interface javax.servlet.ServletContext
      • addListener

        public <T extends EventListener> void addListener​(T t)
        Specified by:
        addListener in interface javax.servlet.ServletContext
      • addListener

        public void addListener​(Class<? extends EventListener> listenerClass)
        Specified by:
        addListener in interface javax.servlet.ServletContext
      • createListener

        public <T extends EventListener> T createListener​(Class<T> clazz)
        Specified by:
        createListener in interface javax.servlet.ServletContext
      • getServletContext

        protected javax.servlet.ServletContext getServletContext()
        Returns the real servlet context of the servlet container in which the Sling Servlet is running.
        Returns:
        the servlet context
      • wrapServletContext

        protected javax.servlet.ServletContext wrapServletContext​(javax.servlet.ServletContext context)
      • getVirtualServerName

        public String getVirtualServerName()
        Specified by:
        getVirtualServerName in interface javax.servlet.ServletContext