Class RequestData
- java.lang.Object
-
- org.apache.sling.engine.impl.request.RequestData
-
public class RequestData extends Object
TheRequestData
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:- Invoke constructor
- Invoke initResource()
- Invoke initServlet()
- See Also:
ContentData
-
-
Field Summary
Fields Modifier and Type Field Description static String
REQUEST_RESOURCE_PATH_ATTR
The name of the request attribute providing the resource addressed by the request URL.
-
Constructor Summary
Constructors Constructor Description RequestData(org.apache.sling.engine.impl.SlingRequestProcessorImpl slingRequestProcessor, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, boolean protectHeadersOnInclude, boolean checkContentTypeOnInclude)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkContentTypeOnInclude()
String
getActiveServletName()
Returns the name of the currently active servlet.ContentData
getContentData()
long
getElapsedTimeMsec()
javax.servlet.ServletInputStream
getInputStream()
ParameterSupport
getParameterSupport()
int
getPeakRecusionDepth()
BufferedReader
getReader()
static RequestData
getRequestData(javax.servlet.ServletRequest request)
static RequestData
getRequestData(org.apache.sling.api.SlingHttpServletRequest request)
org.apache.sling.api.request.RequestProgressTracker
getRequestProgressTracker()
org.apache.sling.api.resource.ResourceResolver
getResourceResolver()
int
getServletCallCount()
javax.servlet.http.HttpServletRequest
getServletRequest()
javax.servlet.http.HttpServletResponse
getServletResponse()
org.apache.sling.api.SlingHttpServletRequest
getSlingRequest()
org.apache.sling.engine.impl.SlingRequestProcessorImpl
getSlingRequestProcessor()
org.apache.sling.api.SlingHttpServletResponse
getSlingResponse()
org.apache.sling.api.resource.Resource
initResource(org.apache.sling.api.resource.ResourceResolver resourceResolver)
void
initServlet(org.apache.sling.api.resource.Resource resource, org.apache.sling.api.servlets.ServletResolver sr)
boolean
protectHeadersOnInclude()
void
resetContent(ContentData data)
static void
service(org.apache.sling.api.SlingHttpServletRequest request, org.apache.sling.api.SlingHttpServletResponse response)
Helper method to call the servlet for the current content data.String
setActiveServletName(String servletName)
Sets the name of the currently active servlet and returns the name of the previously active servlet.ContentData
setContent(org.apache.sling.api.resource.Resource resource, org.apache.sling.api.request.RequestPathInfo requestPathInfo)
static org.apache.sling.api.SlingHttpServletRequest
toSlingHttpServletRequest(javax.servlet.ServletRequest request)
static org.apache.sling.api.SlingHttpServletResponse
toSlingHttpServletResponse(javax.servlet.ServletResponse response)
static org.apache.sling.api.SlingHttpServletRequest
unwrap(javax.servlet.ServletRequest request)
Unwraps the ServletRequest to a SlingHttpServletRequest.static org.apache.sling.api.SlingHttpServletResponse
unwrap(javax.servlet.ServletResponse response)
Unwraps the ServletRequest to a SlingHttpServletRequest.static org.apache.sling.engine.impl.SlingHttpServletRequestImpl
unwrap(org.apache.sling.api.SlingHttpServletRequest request)
Unwraps the SlingHttpServletRequest to a SlingHttpServletRequestImplstatic org.apache.sling.engine.impl.SlingHttpServletResponseImpl
unwrap(org.apache.sling.api.SlingHttpServletResponse response)
Unwraps a SlingHttpServletResponse to a SlingHttpServletResponseImpl
-
-
-
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
-
-
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 therequest
is not aSlingHttpServletRequest
and not aServletRequestWrapper
wrapping aSlingHttpServletRequest
.
-
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
- Ifrequest
is not aSlingHttpServletRequestImpl
and notSlingHttpServletRequestWrapper
wrapping aSlingHttpServletRequestImpl
.
-
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 theresponse
is not aSlingHttpServletResponse
and not aServletResponseWrapper
wrapping aSlingHttpServletResponse
.
-
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
- Ifresponse
is not aSlingHttpServletResponseImpl
and notSlingHttpServletResponseWrapper
wrapping aSlingHttpServletResponseImpl
.
-
getRequestData
public static RequestData getRequestData(javax.servlet.ServletRequest request)
- Parameters:
request
- the request- Returns:
- the request data
- Throws:
IllegalArgumentException
- If therequest
is not aSlingHttpServletRequest
and not aServletRequestWrapper
wrapping aSlingHttpServletRequest
.
-
getRequestData
public static RequestData getRequestData(org.apache.sling.api.SlingHttpServletRequest request)
- Parameters:
request
- the request- Returns:
- the request data
- Throws:
IllegalArgumentException
- Ifrequest
is not aSlingHttpServletRequestImpl
and notSlingHttpServletRequestWrapper
wrapping aSlingHttpServletRequestImpl
.
-
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
- ifrequest
is not aHttpServletRequest
of ifrequest
is not backed bySlingHttpServletRequestImpl
.
-
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
- ifresponse
is not aHttpServletResponse
of ifresponse
is not backed bySlingHttpServletResponseImpl
.
-
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 thecurrently 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 methodresponse
- The response object for the service method- Throws:
IOException
- May be thrown by the servlet's service methodjavax.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)
-
getContentData
public ContentData getContentData()
-
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 notnull
at the end of request processing, more precisly in the case of an uncaughtThrowable
at the end of request processing, this is the name of the servlet causing the uncaughtThrowable
.- Returns:
- the current servlet name
-
getInputStream
public javax.servlet.ServletInputStream getInputStream() throws IOException
- Throws:
IOException
-
getReader
public BufferedReader getReader() throws UnsupportedEncodingException, IOException
-
getParameterSupport
public ParameterSupport getParameterSupport()
-
-