Class SpincastResponseRequestContextAddon<R extends RequestContext<?>>
- All Implemented Interfaces:
ResponseRequestContextAddon<R>
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final boolean
protected static final org.slf4j.Logger
Fields inherited from interface org.spincast.core.exchange.ResponseRequestContextAddon
RESOURCE_TO_PUSH_PLACEHOLDERS_CACHE_BUSTER
-
Constructor Summary
ConstructorDescriptionSpincastResponseRequestContextAddon
(R requestContext, Server server, JsonManager jsonManager, XmlManager xmlManager, SpincastConfig spincastConfig, SpincastUtils spincastUtils, ETagFactory etagFactory, FlashMessagesHolder flashMessagesHolder, FlashMessageFactory flashMessageFactory, CookieFactory cookieFactory) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAlert
(AlertLevel alertType, String alertText) Adds an Alert that is, in general, displayed at the top of the page to show the user an Error, a Warning or a confirmation message.protected void
protected void
addCookieSafe
(String name, String value, Integer nbrSecondsToLive) void
Adds aForm
object to the response's model and links its validation messages to the default "validation" root element.void
Adds aForm
object to the response's model and links its validation messages to the specified validation element.addHeaderValue
(String name, String value) Adds a value to a response header.addHeaderValues
(String name, List<String> values) Adds a list of values to a response header.protected Alert
createAlert
(AlertLevel alertType, String alertText) createCookie
(String name) Creates a cookie using the given name (null
value).void
Deletes all cookies! Not only the new cookies that have been added to the response, but also the cookies that have been received in the request!void
deleteCookie
(String name) Deletes a cookie.void
end()
Flushes everything and closes the response.void
flush()
Flushes the current response.void
flush
(boolean close) Flushes the current response.protected ByteArrayOutputStream
The charset to use to convert characters to bytes.The currentContent-Type
sent or to be send.getCookieAdded
(String name) Gets a cookie already added to the response, by its name.protected CookieFactory
Gets the cookies already added to the response as a Map, using their names as the keys.protected ETagFactory
protected Object
protected FlashMessageFactory
protected FlashMessagesHolder
The currently set gzip options.The values of a specific response header.getHeaderFirst
(String name) The first value of a specific header.The currently set response headers.protected JsonManager
getModel()
TheJsonObject
which serves as the model for the response.protected ByteArrayOutputStream
getOut()
protected R
protected Server
protected SpincastConfig
protected SpincastUtils
int
The currentstatus code
sent or to be send.byte[]
Gets the current unsent bytes (AKA the buffer).Gets the current unsent characters (AKA the buffer), using theUTF-8
encoding.getUnsentCharacters
(String encoding) Gets the current unsent characters (AKA the buffer), using the specified encoding.protected XmlManager
protected boolean
Should Alert messages (and therefore Flash message) be added to the model when sending this one as Json or XML?boolean
isClosed()
Is the response closed? If so, nothing more can be sent...boolean
Are the response headers sent? If this is the case, then the headers can't be changed anymore.protected boolean
protected boolean
Try to determine is the response is characters based or not.protected boolean
IfHTTP/2
is used, you can push extra resources at the same time you response to a request.void
redirect()
Sets a temporarily redirection header (302) to the current page.void
Sets a temporarily redirection header (302).void
Sets a redirection header.void
redirect
(String newUrl, boolean permanently, FlashMessage flashMessage) Sets a redirection header, with a Flash message to display.void
redirect
(String newUrl, boolean permanently, FlashMessageLevel flashMessageType, String flashMessageText) Sets a redirection header, with a Flash message to display.void
redirect
(String newUrl, boolean permanently, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Sets a redirection header, with a Flash message to display.void
Sets the redirection headers with a specified3xx
status code.void
redirect
(String newUrl, int specific3xxCode, FlashMessage flashMessage) Sets the redirection headers with a specified3xx
status code, and a Flash message to display.void
redirect
(String newUrl, int specific3xxCode, FlashMessageLevel flashMessageType, String flashMessageText) Sets the redirection headers with a specified3xx
status code, and a Flash message to display.void
redirect
(String newUrl, int specific3xxCode, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Sets the redirection headers with a specified3xx
status code, and a Flash message to display.void
redirect
(String newUrl, FlashMessage flashMessage) Sets a temporarily redirection header (302), with a Flash message to display.void
redirect
(String newUrl, FlashMessageLevel flashMessageType, String flashMessageText) Sets a temporarily redirection header (302), with a Flash message to display.void
redirect
(String newUrl, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Sets a temporarily redirection header (302), with a Flash message to display.void
redirect
(String newUrl, JsonObject flashMessageVariables) Sets a temporarily redirection header (302), with a Flash variables.void
redirect
(FlashMessage flashMessage) Sets a temporarily redirection header (302) to the current page, with a Flash message to display.void
redirect
(FlashMessageLevel flashMessageType, String flashMessageText) Sets a temporarily redirection header (302) to the current page, with a Flash message to display.void
redirect
(FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Sets a temporarily redirection header (302) to the current page, with a Flash message to display.removeHeader
(String name) Removes an header by its name.Clears the buffer (the unsent buffer, of course).Clears the buffer (the unsent buffer, of course!), resets the cookies, the headers, theContent-Type
and sets thestatus code
back to200
.resetEverything
(boolean resetCookies) Clears the buffer (the unsent buffer, of course), the headers, theContent-Type
and sets thestatus code
back to200
.protected String
saveFlashMessage
(String url, FlashMessage flashMessage) Saves a Flash message.protected void
void
sendBytes
(byte[] bytes) Sends somebytes
, without flushing.void
Sends somebytes
using the specifiedContent-Type
, without flushing.void
Send some bytes + flush if specified.void
sendCharacters
(String content, String contentType) Sends a String, using the encoding returned bygetCharactersCharsetName
and using the specifiedContent-Type
, without flushing.void
sendCharacters
(String content, String contentType, boolean flush) Sends a String, using the encoding returned bygetCharactersCharsetName
and using the specifiedContent-Type
.void
Sends a String astext/html
,UTF-8
encoded, without flushing.void
Sends a String astext/html
,UTF-8
encoded, and flushes, if specified.void
sendJson()
Sends the model asapplication/json
, without flushing.void
sendJson
(boolean flush) Sends the model asapplication/json
, and flushes, if specified.void
Serializes the object toJson
and sends asapplication/json
, without flushing.void
Serializes the object toJson
, sends asapplication/json
, and flushes, if specified.void
Sends aJson
String using theapplication/json
Content-Type, without flushing.void
Sends aJson
String using theapplication/json
Content-Type, and flushes, if specified.void
Parses the given String using theTemplatingEngine
, then sends the result using the specifiedContent-Type
, without flushing.void
Parses the given String using theTemplatingEngine
, then sends the result using the specifiedContent-Type
, and flushes, if specified.void
sendParseHtml
(String html) Parses the given String using theTemplatingEngine
and the given parameters, then sends the result astext/html
,UTF-8
encoded.void
sendParseHtml
(String html, boolean flush) Parses the given String using theTemplatingEngine
and the given parameters, then sends the result astext/html
,UTF-8
encoded, and flushes, if specified.void
sendPlainText
(String string) Sends a String astext/plain
,UTF-8
encoded, without flushing.void
sendPlainText
(String string, boolean flush) Sends a String astext/plain
,UTF-8
encoded, and flushes, if specified.void
sendTemplate
(String templatePath, boolean isClasspathPath, String contentType) Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, without flushing.void
sendTemplate
(String templatePath, boolean isClasspathPath, String contentType, boolean flush) Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, and flushes, if specified.void
sendTemplate
(String templatePath, String contentType) Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, without flushing.void
sendTemplate
(String templatePath, String contentType, boolean flush) Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, and flushes, if specified.void
sendTemplateHtml
(String templatePath) Finds theHTML
template using theTemplatingEngine
, evaluates it using the model that have been added to the response, then sends the result astext/html
,UTF-8
encoded, without flushing.void
sendTemplateHtml
(String templatePath, boolean isClasspathPath) Finds theHTML
template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result astext/html
,UTF-8
encoded.void
sendTemplateHtml
(String templatePath, boolean isClasspathPath, boolean flush) Finds theHTML
template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result astext/html
,UTF-8
encoded, and flushes, if specified.void
sendXml()
Sends the model asapplication/xml
, without flushing.void
sendXml
(boolean flush) Sends the model asapplication/xml
, and flushes, if specified.void
Serializes the object toXML
and sends asapplication/xml
, without flushing.void
Serializes the object toXML
, sends asapplication/xml
, and flushes, if specified.void
Sends someXML
using theapplication/xml
Content-Type, without flushing.void
Sends someXML
using theapplication/xml
Content-Type, and flushes, if specified.setCacheSeconds
(int cacheSeconds) Adds caching headers.setCacheSeconds
(int cacheSeconds, boolean isPrivateCache) Adds caching headers for the specified number of seconds.setCharactersCharsetName
(String charactersCharsetName) Sets the charset to use to convert characters to bytes.setContentType
(String responseContentType) TheContent-Type
header to use for the response.void
Sets a cookie using the specified name, value and number of seconds to live.void
Sets a cookie using the specified name, value, number of seconds to live and if it's http only.void
setCookie
(String name, String value, String path, String domain, Date expires, boolean secure, boolean httpOnly, CookieSameSite cookieSameSite, boolean discard, int version) Sets a cookie, using all available configurations.void
Sets a cookie.void
setCookie10years
(String name, String value) Sets a permanent cookie (10 years) using the specified name and value.void
setCookie10yearsSafe
(String name, String value) Sets a permanent cookie (10 years) using the specified name and value.void
setCookie1year
(String name, String value) Sets a permanent cookie (1 years) using the specified name and value.void
setCookie1yearSafe
(String name, String value) Sets a permanent cookie (1 years) using the specified name and value.void
setCookieSession
(String name, String value) Sets a cookie using the specified name and value.void
setCookieSessionSafe
(String name, String value) Sets a cookie using the specified name and value.setGzipOption
(GzipOption gzipOption) Enable or disable gzipping of the response.Set the value to a response header.Set multiple values to a response header.protected void
setIsShouldGzip
(boolean isShouldGzip) void
setModel
(JsonObject model) Replaces the current response model completely.protected void
setRequestSizeValidated
(boolean requestSizeValidated) setStatusCode
(int responseStatusCode) Sets the response'sstatus code
to use.protected String
protected boolean
validateCookie
(Cookie cookie)
-
Field Details
-
logger
protected static final org.slf4j.Logger logger -
IS_RESPONSE_CHARACTERS_BASED_BY_DEFAULT
protected static final boolean IS_RESPONSE_CHARACTERS_BASED_BY_DEFAULT- See Also:
-
-
Constructor Details
-
SpincastResponseRequestContextAddon
@Inject public SpincastResponseRequestContextAddon(R requestContext, Server server, JsonManager jsonManager, XmlManager xmlManager, SpincastConfig spincastConfig, SpincastUtils spincastUtils, ETagFactory etagFactory, FlashMessagesHolder flashMessagesHolder, FlashMessageFactory flashMessageFactory, CookieFactory cookieFactory)
-
-
Method Details
-
getRequestContext
-
getServer
-
getExchange
-
getJsonManager
-
getXmlManager
-
getSpincastConfig
-
getSpincastUtils
-
getEtagFactory
-
getFlashMessagesHolder
-
getFlashMessageFactory
-
getCookieFactory
-
getBuffer
-
getOut
-
getModel
Description copied from interface:ResponseRequestContextAddon
TheJsonObject
which serves as the model for the response. This object will be used by the templating engine or will be sent as is, often as anapplication/json
response.This object is mutable.
- Specified by:
getModel
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getGzipBuffer
-
isRequestSizeValidated
protected boolean isRequestSizeValidated() -
setRequestSizeValidated
protected void setRequestSizeValidated(boolean requestSizeValidated) -
setGzipOption
Description copied from interface:ResponseRequestContextAddon
Enable or disable gzipping of the response. The default isGzipOption.DEFAULT
which will gzip the response only for someContent-Types
and only if agzip 'Accept-Encoding'
header has been received from the client.- Specified by:
setGzipOption
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getGzipOption
Description copied from interface:ResponseRequestContextAddon
The currently set gzip options.- Specified by:
getGzipOption
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getStatusCode
public int getStatusCode()Description copied from interface:ResponseRequestContextAddon
The currentstatus code
sent or to be send.- Specified by:
getStatusCode
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setStatusCode
Description copied from interface:ResponseRequestContextAddon
Sets the response'sstatus code
to use. Uses200
by default. Note that thisstatus code
can be changed automatically if an exception is thrown.- Specified by:
setStatusCode
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getContentType
Description copied from interface:ResponseRequestContextAddon
The currentContent-Type
sent or to be send.- Specified by:
getContentType
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setContentType
Description copied from interface:ResponseRequestContextAddon
TheContent-Type
header to use for the response. MostsendXXX()
methods will set this automatically.- Specified by:
setContentType
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
isResponseCharactersBased
protected boolean isResponseCharactersBased()Try to determine is the response is characters based or not. This is allow us to use a default Content-Type header if none was specified. -
isClosed
public boolean isClosed()Description copied from interface:ResponseRequestContextAddon
Is the response closed? If so, nothing more can be sent...- Specified by:
isClosed
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
public void redirect()Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302) to the current page.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302) to the current page, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302) to the current page, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
public void redirect(FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302) to the current page, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302).This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302), with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessage
- A Flash Message to pass to the target page.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302), with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.
-
redirect
public void redirect(String newUrl, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302), with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.flashMessageVariables
- The variables of a Flash Message to pass to the target page.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a temporarily redirection header (302), with a Flash variables.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessageVariables
- The variables of a Flash Message to pass to the target page.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a redirection header.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
permanently
- Iftrue
, a301
header will be sent. Iffalse
,302
will be sent.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets a redirection header, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
permanently
- Iftrue
, a301
header will be sent. Iffalse
,302
will be sent.flashMessage
- A Flash Message to pass to the target page.
-
redirect
public void redirect(String newUrl, boolean permanently, FlashMessageLevel flashMessageType, String flashMessageText) Description copied from interface:ResponseRequestContextAddon
Sets a redirection header, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
permanently
- Iftrue
, a301
header will be sent. Iffalse
,302
will be sent.flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.
-
redirect
public void redirect(String newUrl, boolean permanently, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Description copied from interface:ResponseRequestContextAddon
Sets a redirection header, with a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
permanently
- Iftrue
, a301
header will be sent. Iffalse
,302
will be sent.flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.flashMessageVariables
- The variables of a Flash Message to pass to the target page.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets the redirection headers with a specified3xx
status code.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
redirect
public void redirect(String newUrl, int specific3xxCode, FlashMessageLevel flashMessageType, String flashMessageText) Description copied from interface:ResponseRequestContextAddon
Sets the redirection headers with a specified3xx
status code, and a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.
-
redirect
public void redirect(String newUrl, int specific3xxCode, FlashMessageLevel flashMessageType, String flashMessageText, JsonObject flashMessageVariables) Description copied from interface:ResponseRequestContextAddon
Sets the redirection headers with a specified3xx
status code, and a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessageType
- The type of a Flash Message to pass to the target page.flashMessageText
- The text of a Flash Message to pass to the target page.flashMessageVariables
- The variables of a Flash Message to pass to the target page.
-
redirect
Description copied from interface:ResponseRequestContextAddon
Sets the redirection headers with a specified3xx
status code, and a Flash message to display.This will NOT close the response and will NOT skip the remaining handlers! Throw a
RedirectException
instead if you want to redirect the user immediately.- Specified by:
redirect
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
flashMessage
- A Flash Message to pass to the target page.
-
saveFlashMessage
Saves a Flash message. Returned a modified version of the final URL to redirect to, if required. -
sendBytes
public void sendBytes(byte[] bytes) Description copied from interface:ResponseRequestContextAddon
Sends somebytes
, without flushing.- Specified by:
sendBytes
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendBytes
Description copied from interface:ResponseRequestContextAddon
Sends somebytes
using the specifiedContent-Type
, without flushing.- Specified by:
sendBytes
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendBytes
Send some bytes + flush if specified.- Specified by:
sendBytes
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
send
-
sendCharacters
Description copied from interface:ResponseRequestContextAddon
Sends a String, using the encoding returned bygetCharactersCharsetName
and using the specifiedContent-Type
, without flushing.- Specified by:
sendCharacters
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendCharacters
Description copied from interface:ResponseRequestContextAddon
Sends a String, using the encoding returned bygetCharactersCharsetName
and using the specifiedContent-Type
. Flushes the response, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendCharacters
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getCharactersCharsetName
Description copied from interface:ResponseRequestContextAddon
The charset to use to convert characters to bytes. Defaults to"UTF-8"
.- Specified by:
getCharactersCharsetName
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCharactersCharsetName
Description copied from interface:ResponseRequestContextAddon
Sets the charset to use to convert characters to bytes. Defaults to"UTF-8"
. Make sure you use the same charset here than the one that is sent as the"Content-Type"
header (which is also"UTF-8"
by default, if you send data usingsendPlainText()
,sendHtml()
orsendJson()
).- Specified by:
setCharactersCharsetName
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendPlainText
Description copied from interface:ResponseRequestContextAddon
Sends a String astext/plain
,UTF-8
encoded, without flushing.- Specified by:
sendPlainText
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendPlainText
Description copied from interface:ResponseRequestContextAddon
Sends a String astext/plain
,UTF-8
encoded, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendPlainText
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendHtml
Description copied from interface:ResponseRequestContextAddon
Sends a String astext/html
,UTF-8
encoded, without flushing.- Specified by:
sendHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendHtml
Description copied from interface:ResponseRequestContextAddon
Sends a String astext/html
,UTF-8
encoded, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendParseHtml
Description copied from interface:ResponseRequestContextAddon
Parses the given String using theTemplatingEngine
and the given parameters, then sends the result astext/html
,UTF-8
encoded.- Specified by:
sendParseHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendParseHtml
Description copied from interface:ResponseRequestContextAddon
Parses the given String using theTemplatingEngine
and the given parameters, then sends the result astext/html
,UTF-8
encoded, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendParseHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendParse
Description copied from interface:ResponseRequestContextAddon
Parses the given String using theTemplatingEngine
, then sends the result using the specifiedContent-Type
, without flushing.- Specified by:
sendParse
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendParse
Description copied from interface:ResponseRequestContextAddon
Parses the given String using theTemplatingEngine
, then sends the result using the specifiedContent-Type
, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendParse
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendTemplateHtml
Description copied from interface:ResponseRequestContextAddon
Finds theHTML
template using theTemplatingEngine
, evaluates it using the model that have been added to the response, then sends the result astext/html
,UTF-8
encoded, without flushing.- Specified by:
sendTemplateHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Parameters:
templatePath
- must be a classpath's relative path.
-
sendTemplateHtml
Description copied from interface:ResponseRequestContextAddon
Finds theHTML
template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result astext/html
,UTF-8
encoded.- Specified by:
sendTemplateHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
isClasspathPath
- iftrue
, the 'templatePath' is considered as a classpath's relative path. Iffalse
, it is considered as an absolute file system path.
-
sendTemplateHtml
Description copied from interface:ResponseRequestContextAddon
Finds theHTML
template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result astext/html
,UTF-8
encoded, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendTemplateHtml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
isClasspathPath
- iftrue
, the 'templatePath' is considered as a classpath's relative path. Iffalse
, it is considered as an absolute file system path.
-
sendTemplate
Description copied from interface:ResponseRequestContextAddon
Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, without flushing.- Specified by:
sendTemplate
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Parameters:
templatePath
- must be a classpath's relative path.
-
sendTemplate
Description copied from interface:ResponseRequestContextAddon
Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendTemplate
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Parameters:
templatePath
- must be a classpath's relative path.
-
sendTemplate
Description copied from interface:ResponseRequestContextAddon
Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, without flushing.- Specified by:
sendTemplate
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
isClasspathPath
- iftrue
, the 'templatePath' is considered as a classpath's relative path. Iffalse
, it is considered as an absolute file system path.
-
sendTemplate
public void sendTemplate(String templatePath, boolean isClasspathPath, String contentType, boolean flush) Description copied from interface:ResponseRequestContextAddon
Finds the specified template using theTemplatingEngine
, evaluates it using the given parameters, then sends the result using the givencontentType
, and flushes, if specified. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
sendTemplate
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
isClasspathPath
- iftrue
, the 'templatePath' is considered as a classpath's relative path. Iffalse
, it is considered as an absolute file system path.
-
sendJson
public void sendJson()Description copied from interface:ResponseRequestContextAddon
Sends the model asapplication/json
, without flushing.- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendJson
public void sendJson(boolean flush) Description copied from interface:ResponseRequestContextAddon
Sends the model asapplication/json
, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendJson
Description copied from interface:ResponseRequestContextAddon
Sends aJson
String using theapplication/json
Content-Type, without flushing.Synonym of :
sendCharacters(jsonString, "application/json")
- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendJson
Description copied from interface:ResponseRequestContextAddon
Sends aJson
String using theapplication/json
Content-Type, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
Synonym of :
sendCharacters(jsonString, "application/json", flush)
- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendJson
Description copied from interface:ResponseRequestContextAddon
Serializes the object toJson
and sends asapplication/json
, without flushing.If the specified Object is a
String
, it will be considered as already beingJSON
and will be send as is.- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendJson
Description copied from interface:ResponseRequestContextAddon
Serializes the object toJson
, sends asapplication/json
, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
If the specified Object is a
String
, it will be considered as already beingJSON
and will be send as is.- Specified by:
sendJson
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
public void sendXml()Description copied from interface:ResponseRequestContextAddon
Sends the model asapplication/xml
, without flushing.- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
public void sendXml(boolean flush) Description copied from interface:ResponseRequestContextAddon
Sends the model asapplication/xml
, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
Description copied from interface:ResponseRequestContextAddon
Sends someXML
using theapplication/xml
Content-Type, without flushing.Synonym of :
sendCharacters(xml, "application/xml")
- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
Description copied from interface:ResponseRequestContextAddon
Sends someXML
using theapplication/xml
Content-Type, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
Synonym of :
sendCharacters(xml, "application/xml", flush)
- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
Description copied from interface:ResponseRequestContextAddon
Serializes the object toXML
and sends asapplication/xml
, without flushing.If the specified Object is a
String
, it will be considered as already beingXML
and will be send as is.- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
sendXml
Description copied from interface:ResponseRequestContextAddon
Serializes the object toXML
, sends asapplication/xml
, and flushes, if specified.Note that once the response is flushed, no header can be added or changed anymore.
If the specified Object is a
String
, it will be considered as already beingXML
and will be send as is.- Specified by:
sendXml
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addAlertsToModel
protected void addAlertsToModel() -
isAddAlertsToModel
protected boolean isAddAlertsToModel()Should Alert messages (and therefore Flash message) be added to the model when sending this one as Json or XML? -
resetBuffer
Description copied from interface:ResponseRequestContextAddon
Clears the buffer (the unsent buffer, of course).- Specified by:
resetBuffer
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
resetEverything
Description copied from interface:ResponseRequestContextAddon
Clears the buffer (the unsent buffer, of course!), resets the cookies, the headers, theContent-Type
and sets thestatus code
back to200
.- Specified by:
resetEverything
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
resetEverything
Description copied from interface:ResponseRequestContextAddon
Clears the buffer (the unsent buffer, of course), the headers, theContent-Type
and sets thestatus code
back to200
.- Specified by:
resetEverything
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Parameters:
resetCookies
- iftrue
, cookies that have been added on the current response will be reset too.
-
getUnsentBytes
public byte[] getUnsentBytes()Description copied from interface:ResponseRequestContextAddon
Gets the current unsent bytes (AKA the buffer).- Specified by:
getUnsentBytes
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getUnsentCharacters
Description copied from interface:ResponseRequestContextAddon
Gets the current unsent characters (AKA the buffer), using theUTF-8
encoding.- Specified by:
getUnsentCharacters
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getUnsentCharacters
Description copied from interface:ResponseRequestContextAddon
Gets the current unsent characters (AKA the buffer), using the specified encoding.- Specified by:
getUnsentCharacters
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
removeHeader
Description copied from interface:ResponseRequestContextAddon
Removes an header by its name.- Specified by:
removeHeader
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setHeader
Description copied from interface:ResponseRequestContextAddon
Set the value to a response header. If the header already exists, its current values are overwritten. If the value isnull
, the header will be removed (same behavior asremoveHeader(String name)
)- Specified by:
setHeader
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setHeader
Description copied from interface:ResponseRequestContextAddon
Set multiple values to a response header. If the header already exists, its current values are overwritten. If the lists isnull
or empty, the header will be removed (same behavior asremoveHeader(String name)
)- Specified by:
setHeader
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addHeaderValue
Description copied from interface:ResponseRequestContextAddon
Adds a value to a response header. If the header already has values, the new one is added. If the value isnull
, it won't be added.- Specified by:
addHeaderValue
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addHeaderValues
Description copied from interface:ResponseRequestContextAddon
Adds a list of values to a response header. If the header already has values, the new ones are added. If the values arenull
, nothing will be added.- Specified by:
addHeaderValues
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getHeaders
Description copied from interface:ResponseRequestContextAddon
The currently set response headers. The map is mutable! Also the returned implementation is aTreeMap
with case insensitive keys.- Specified by:
getHeaders
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getHeader
Description copied from interface:ResponseRequestContextAddon
The values of a specific response header. The list is mutable! The name is case insensitive. Returns an empty list if the header was not found.- Specified by:
getHeader
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getHeaderFirst
Description copied from interface:ResponseRequestContextAddon
The first value of a specific header. The name is case insensitive. Returnsnull
if the header is not found.- Specified by:
getHeaderFirst
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
isHeadersSent
public boolean isHeadersSent()Description copied from interface:ResponseRequestContextAddon
Are the response headers sent? If this is the case, then the headers can't be changed anymore.- Specified by:
isHeadersSent
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setIsShouldGzip
protected void setIsShouldGzip(boolean isShouldGzip) -
isShouldGzip
protected boolean isShouldGzip() -
end
public void end()Description copied from interface:ResponseRequestContextAddon
Flushes everything and closes the response. Nothing more can be sent after this (but the remainingroute handlers
will still be called).- Specified by:
end
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
flush
public void flush()Description copied from interface:ResponseRequestContextAddon
Flushes the current response. If not already specified, a defaultstatus code
andContent-Type
will be added. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
flush
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
flush
public void flush(boolean close) Description copied from interface:ResponseRequestContextAddon
Flushes the current response. If not already specified on the response, a defaultstatus code
andcontent-type
will be added. Note that once the response is flushed, no header can be added or changed anymore.- Specified by:
flush
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Parameters:
close
- Iftrue
, the response will be closed and no more data can be sent. This has the same effect than callingResponseRequestContextAddon.end()
.
-
setCacheSeconds
Description copied from interface:ResponseRequestContextAddon
Adds caching headers.- Specified by:
setCacheSeconds
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCacheSeconds
Description copied from interface:ResponseRequestContextAddon
Adds caching headers for the specified number of seconds. Adds caching headers.- Specified by:
setCacheSeconds
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
isPrivateCache
- iftrue
, the cache will be flagged as "private".
-
setModel
Description copied from interface:ResponseRequestContextAddon
Replaces the current response model completely.Use
ResponseRequestContextAddon.getModel()
instead to get the current model instance and add properties to it.- Specified by:
setModel
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addAlert
Description copied from interface:ResponseRequestContextAddon
Adds an Alert that is, in general, displayed at the top of the page to show the user an Error, a Warning or a confirmation message.Those alerts are available using the "spincast.alerts" templating variable. If any, a
Flash Messages
is also added to this variable.- Specified by:
addAlert
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
createAlert
-
getCookiesAdded
Description copied from interface:ResponseRequestContextAddon
Gets the cookies already added to the response as a Map, using their names as the keys.NOTE : use the
RequestRequestContextAddon.getCookiesValues()
from therequest()
add-on instead to get the cookies sent by the user!- Specified by:
getCookiesAdded
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getCookieAdded
Description copied from interface:ResponseRequestContextAddon
Gets a cookie already added to the response, by its name.NOTE : use the
RequestRequestContextAddon.getCookieValue(String)
from therequest()
add-on instead to get a cookie sent by the user!- Specified by:
getCookieAdded
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
- Returns:
- the cookie or
null
if not found.
-
setCookie
Description copied from interface:ResponseRequestContextAddon
Sets a cookie.- Specified by:
setCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookieSession
Description copied from interface:ResponseRequestContextAddon
Sets a cookie using the specified name and value.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
and the cookie is valid for the time of the session only.- Specified by:
setCookieSession
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookieSessionSafe
Description copied from interface:ResponseRequestContextAddon
Sets a cookie using the specified name and value. The cookie will be "secure", "httpOnly" and aCookieSameSite
value ofCookieSameSite.LAX
.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
and the cookie is valid for the time of the session only.- Specified by:
setCookieSessionSafe
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie1year
Description copied from interface:ResponseRequestContextAddon
Sets a permanent cookie (1 years) using the specified name and value.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie1year
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie1yearSafe
Description copied from interface:ResponseRequestContextAddon
Sets a permanent cookie (1 years) using the specified name and value. The cookie will be "secure", "httpOnly" and aCookieSameSite
value ofCookieSameSite.LAX
.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie1yearSafe
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie10years
Description copied from interface:ResponseRequestContextAddon
Sets a permanent cookie (10 years) using the specified name and value.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie10years
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie10yearsSafe
Description copied from interface:ResponseRequestContextAddon
Sets a permanent cookie (10 years) using the specified name and value. The cookie will be "secure", "httpOnly" and aCookieSameSite
value ofCookieSameSite.LAX
.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie10yearsSafe
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie
Description copied from interface:ResponseRequestContextAddon
Sets a cookie using the specified name, value and number of seconds to live.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
setCookie
Description copied from interface:ResponseRequestContextAddon
Sets a cookie using the specified name, value, number of seconds to live and if it's http only.By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
.- Specified by:
setCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addCookieSafe
-
setCookie
public void setCookie(String name, String value, String path, String domain, Date expires, boolean secure, boolean httpOnly, CookieSameSite cookieSameSite, boolean discard, int version) Description copied from interface:ResponseRequestContextAddon
Sets a cookie, using all available configurations.- Specified by:
setCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
validateCookie
-
deleteCookie
Description copied from interface:ResponseRequestContextAddon
Deletes a cookie. In fact, this sets the cookie'sexpires date
in the past so the user's browser will remove it.isExpired()
will returntrue
after you called this method.- Specified by:
deleteCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
deleteAllCookiesUserHas
public void deleteAllCookiesUserHas()Description copied from interface:ResponseRequestContextAddon
Deletes all cookies! Not only the new cookies that have been added to the response, but also the cookies that have been received in the request!In fact, this method sets the
expires date
of the cookies in the past so the user's browser will remove them.- Specified by:
deleteAllCookiesUserHas
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
createCookie
Description copied from interface:ResponseRequestContextAddon
Creates a cookie using the given name (null
value).By default, the public host (
SpincastConfig.getPublicServerHost()
) is uses as the cookie'sdomain
and the cookie is valid for the time of the session only.You have to add the cookie using the
ResponseRequestContextAddon.setCookie(Cookie)
method after it is properly created.- Specified by:
createCookie
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addForm
Description copied from interface:ResponseRequestContextAddon
Adds aForm
object to the response's model and links its validation messages to the default "validation" root element.In other words, adding a form will result in those elements to the response's model :
- [formName] => the form itself
- [validation] => validation messages for the form with keys such as "[formName].something" and "[formName].somethingElse".
- Specified by:
addForm
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
addForm
Description copied from interface:ResponseRequestContextAddon
Adds aForm
object to the response's model and links its validation messages to the specified validation element.In other words, adding a form will result in those elements to the response's model :
- [formName] => the form itself
- [validationElementName] => validation messages for the form with keys such as "[formName].something" and "[formName].somethingElse".
- Specified by:
addForm
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
-
getResourcesToPush
-
push
public ResponseRequestContextAddon<R> push(HttpMethod httpMethod, String path, Map<String, List<String>> requestHeaders) Description copied from interface:ResponseRequestContextAddon
IfHTTP/2
is used, you can push extra resources at the same time you response to a request.If the embedded server deals with a HTTTP/2 request, it will push the extra resources by itself. If it deals with an HTTP/1.X request (for example if it is behind a reverse-proxy) it will send
Link
headers to the potential proxy in front of it and it is the proxy that will be in charge of doing the actual push.Beware that pushing resources does not always result in an increase of performance and may lead to wasted bandwidth (the client may decide to not use those pushed resources).
- Specified by:
push
in interfaceResponseRequestContextAddon<R extends RequestContext<?>>
path
- The absolute path to the resource to push, starting with "/" (or it will be added). No scheme, host, port but may contain a querystring.requestHeaders
- The headers for requesting the resource. May benull
. Those headers will only be used if the embedded server pushes the resources by itself. If it is behind a reverse-proxy and ask this proxy to push the resources, those headers won't be used but a "as=" attribute may be added to help the proxy serve the proper content-type.
-
tweakResourceToPushPath
-