Class SlingServletContext

java.lang.Object
org.apache.sling.engine.impl.helper.SlingServletContext
All Implemented Interfaces:
EventListener, javax.servlet.ServletContext, javax.servlet.ServletContextListener

public class SlingServletContext extends Object implements javax.servlet.ServletContext, javax.servlet.ServletContextListener
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.

  • Field Details

  • Constructor Details

    • SlingServletContext

      public SlingServletContext(org.apache.sling.engine.impl.Config config, org.osgi.framework.BundleContext bundleContext, org.apache.sling.engine.impl.ProductInfoProvider infoProvider)
  • Method Details

    • modified

      protected void modified(org.apache.sling.engine.impl.Config config)
    • contextInitialized

      public void contextInitialized(javax.servlet.ServletContextEvent sce)
      Specified by:
      contextInitialized in interface javax.servlet.ServletContextListener
    • contextDestroyed

      public void contextDestroyed(javax.servlet.ServletContextEvent sce)
      Specified by:
      contextDestroyed in interface javax.servlet.ServletContextListener
    • 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
    • getVirtualServerName

      public String getVirtualServerName()
      Specified by:
      getVirtualServerName 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)