Class RequestData


  • public class RequestData
    extends Object
    The RequestData class provides access to objects which are set on a Servlet Request wide basis such as the repository session, the persistence manager, etc. The setup order is:
    1. Invoke constructor
    2. Invoke initResource()
    3. Invoke initServlet()
    See Also:
    ContentData
    • Field Detail

      • REQUEST_RESOURCE_PATH_ATTR

        public static final String REQUEST_RESOURCE_PATH_ATTR
        The name of the request attribute providing the resource addressed by the request URL.
        See Also:
        Constant Field Values
    • Constructor Detail

      • RequestData

        public RequestData​(org.apache.sling.engine.impl.SlingRequestProcessorImpl slingRequestProcessor,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response,
                           boolean protectHeadersOnInclude,
                           boolean checkContentTypeOnInclude)
    • Method Detail

      • initResource

        public org.apache.sling.api.resource.Resource initResource​(org.apache.sling.api.resource.ResourceResolver resourceResolver)
      • initServlet

        public void initServlet​(org.apache.sling.api.resource.Resource resource,
                                org.apache.sling.api.servlets.ServletResolver sr)
      • getSlingRequestProcessor

        public org.apache.sling.engine.impl.SlingRequestProcessorImpl getSlingRequestProcessor()
      • getServletRequest

        public javax.servlet.http.HttpServletRequest getServletRequest()
      • getServletResponse

        public javax.servlet.http.HttpServletResponse getServletResponse()
      • getSlingRequest

        public org.apache.sling.api.SlingHttpServletRequest getSlingRequest()
      • getSlingResponse

        public org.apache.sling.api.SlingHttpServletResponse getSlingResponse()
      • unwrap

        public static org.apache.sling.api.SlingHttpServletRequest unwrap​(javax.servlet.ServletRequest request)
        Unwraps the ServletRequest to a SlingHttpServletRequest.
        Parameters:
        request - the request
        Returns:
        the unwrapped request
        Throws:
        IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
      • unwrap

        public static org.apache.sling.engine.impl.SlingHttpServletRequestImpl unwrap​(org.apache.sling.api.SlingHttpServletRequest request)
        Unwraps the SlingHttpServletRequest to a SlingHttpServletRequestImpl
        Parameters:
        request - the request
        Returns:
        the unwrapped request
        Throws:
        IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
      • unwrap

        public static org.apache.sling.api.SlingHttpServletResponse unwrap​(javax.servlet.ServletResponse response)
        Unwraps the ServletRequest to a SlingHttpServletRequest.
        Parameters:
        response - the response
        Returns:
        the unwrapped response
        Throws:
        IllegalArgumentException - If the response is not a SlingHttpServletResponse and not a ServletResponseWrapper wrapping a SlingHttpServletResponse.
      • unwrap

        public static org.apache.sling.engine.impl.SlingHttpServletResponseImpl unwrap​(org.apache.sling.api.SlingHttpServletResponse response)
        Unwraps a SlingHttpServletResponse to a SlingHttpServletResponseImpl
        Parameters:
        response - the response
        Returns:
        the unwrapped response
        Throws:
        IllegalArgumentException - If response is not a SlingHttpServletResponseImpl and not SlingHttpServletResponseWrapper wrapping a SlingHttpServletResponseImpl.
      • getRequestData

        public static RequestData getRequestData​(javax.servlet.ServletRequest request)
        Parameters:
        request - the request
        Returns:
        the request data
        Throws:
        IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
      • getRequestData

        public static RequestData getRequestData​(org.apache.sling.api.SlingHttpServletRequest request)
        Parameters:
        request - the request
        Returns:
        the request data
        Throws:
        IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
      • toSlingHttpServletRequest

        public static org.apache.sling.api.SlingHttpServletRequest toSlingHttpServletRequest​(javax.servlet.ServletRequest request)
        Parameters:
        request - the request
        Returns:
        the sling http servlet request
        Throws:
        IllegalArgumentException - if request is not a HttpServletRequest of if request is not backed by SlingHttpServletRequestImpl.
      • toSlingHttpServletResponse

        public static org.apache.sling.api.SlingHttpServletResponse toSlingHttpServletResponse​(javax.servlet.ServletResponse response)
        Parameters:
        response - the response
        Returns:
        the sling http servlet response
        Throws:
        IllegalArgumentException - if response is not a HttpServletResponse of if response is not backed by SlingHttpServletResponseImpl.
      • service

        public static void service​(org.apache.sling.api.SlingHttpServletRequest request,
                                   org.apache.sling.api.SlingHttpServletResponse response)
                            throws IOException,
                                   javax.servlet.ServletException
        Helper method to call the servlet for the current content data. If the current content data has no servlet, NOT_FOUND (404) error is sent and the method terminates.

        If the the servlet exists, the SlingConstants.SLING_CURRENT_SERVLET_NAME request attribute is set to the name of that servlet and that servlet name is also set as the currently active servlet. After the termination of the servlet (normal or throwing a Throwable) the request attribute is reset to the previous value. The name of the currently active servlet is only reset to the previous value if the servlet terminates normally. In case of a Throwable, the active servlet name is not reset and indicates which servlet caused the potential abort of the request.

        Parameters:
        request - The request object for the service method
        response - The response object for the service method
        Throws:
        IOException - May be thrown by the servlet's service method
        javax.servlet.ServletException - May be thrown by the servlet's service method
      • setContent

        public ContentData setContent​(org.apache.sling.api.resource.Resource resource,
                                      org.apache.sling.api.request.RequestPathInfo requestPathInfo)
      • resetContent

        public void resetContent​(ContentData data)
      • getResourceResolver

        public org.apache.sling.api.resource.ResourceResolver getResourceResolver()
      • getRequestProgressTracker

        public org.apache.sling.api.request.RequestProgressTracker getRequestProgressTracker()
      • getPeakRecusionDepth

        public int getPeakRecusionDepth()
      • getServletCallCount

        public int getServletCallCount()
      • protectHeadersOnInclude

        public boolean protectHeadersOnInclude()
      • checkContentTypeOnInclude

        public boolean checkContentTypeOnInclude()
      • getElapsedTimeMsec

        public long getElapsedTimeMsec()
      • setActiveServletName

        public String setActiveServletName​(String servletName)
        Sets the name of the currently active servlet and returns the name of the previously active servlet.
        Parameters:
        servletName - the servlet name
        Returns:
        the previous servlet name
      • getActiveServletName

        public String getActiveServletName()
        Returns the name of the currently active servlet. If this name is not null at the end of request processing, more precisly in the case of an uncaught Throwable at the end of request processing, this is the name of the servlet causing the uncaught Throwable.
        Returns:
        the current servlet name
      • getInputStream

        public javax.servlet.ServletInputStream getInputStream()
                                                        throws IOException
        Throws:
        IOException