Package com.avoka.core.util
Class ServletUtils
- java.lang.Object
-
- com.avoka.core.util.ServletUtils
-
public class ServletUtils extends Object
Provides Servlet Utility methods.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ServletUtils.BrowserType
The decoded user agent browser types.
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_PDF_OPEN_PARAMS
The default PDF open window URL parameters (show toolbar, show navpanes, show scrollbar).static String
PARAM_AcrobatPluginVersion
The url parameter which specifies the Adobe Acrobat plugin version detected using JavaScript.static String
PARAM_OBJECT_TAG
The using objectTag request parameter name.
-
Constructor Summary
Constructors Constructor Description ServletUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
acceptsGzipEncoding(HttpServletRequest request)
Check whether the request accepts encoding gzip.static Double
getAcrobatPluginVersion(HttpServletRequest request)
Return Adobe Acrobat (Reader) plug-in version number if defined in the request parameter 'AcrobatPluginVersion', or null otherwise.static String
getAddressFromRequest(HttpServletRequest request)
Return the remote address for the given request, using the X-Forwarded-For if available.static ServletUtils.BrowserType
getBrowserType(HttpServletRequest request)
Return the browser type [IE, FF, OTHER].static Cookie
getCookie(HttpServletRequest request, String name)
Returns the specified Cookie object, or null if the cookie does not exist.static String
getCookieValue(HttpServletRequest request, String name)
Returns the value of the specified cookie as a String.static String
getReferer(HttpServletRequest request)
Return the referer HTTP Header value.static String
getRequestErrorDebug(HttpServletRequest request, Map<String,Object> parameters)
Return a request error debug string for the given request and parameters map.static String
getRequestInfoDebug(HttpServletRequest request)
Return a request info debug string for the given requeststatic String
getRequestInfoDebug(HttpServletRequest request, Map<String,Object> parameters)
Return a request info debug string for the given request and parameters map.static String
getRequestParameterDebug(HttpServletRequest request, boolean decode)
Return a debug string of the request parameter names and values.static String
getRequestURI(HttpServletRequest request)
Return the requestURI from the request.static String
getResourcePath(HttpServletRequest request)
Return the page resource path from the request.static String
getUserAgent(HttpServletRequest request)
Return the user agent header (browser string).static boolean
isContentTypeRequest(HttpServletRequest request)
Return true if an IE Plug-in "contype" type request.static boolean
isDoubleObjectTagRequest(HttpServletRequest request)
Return true if a HTML object tag double request for a PDF form which should be ignored.static boolean
isIE6to8(HttpServletRequest request)
Return true if the User Agent header is [ "MSIE 6.0" | "MSIE 7.0" | "MSIE 8.0" ].static boolean
isIE6to9(HttpServletRequest request)
Return true if the User Agent header is IE6 to IE9 [ "MSIE 6.0" | "MSIE 7.0" | "Trident/4.0" | "Trident/5.0" ].static boolean
isIEandNotV8to10(HttpServletRequest request)
Return true if the browser is IE and not version IE8 to IE10.static void
regenerateSession(HttpServletRequest request)
Generates a new session containing all attributes in the current session.static long
renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray)
Render a byte array to the browser.static long
renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray, boolean doCompress)
Render a byte array to the browser.static long
renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray, byte[] byteArrayGzip, boolean doCompress)
Render a byte array or zipped byte array to the browserstatic void
sendRedirect(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the new URL path.static void
sendRedirect(HttpServletResponse response, String location, Map<String,?> params)
Redirect the request to the specified location with the given parameters.static void
sendRedirectAferPdfSubmit(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the new URL path.static void
sendRedirectParentPage(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the specified URL and redirect any parent page if the request was from an IFRAME.static void
setCacheHeaders(HttpServletRequest request, HttpServletResponse response, int durationSecs)
Set caching time in the headerstatic void
setContentDisposition(HttpServletRequest request, HttpServletResponse response, String contentType, String filename, boolean saveAsAttachment)
Set content disposition for the response.static void
setContentDownloadHeader(HttpServletResponse response, String filename)
Sets the content download header.static Cookie
setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, int maxAge, String path)
Sets the given cookie values in the servlet response.static void
setNoCacheHeaders(HttpServletRequest request, HttpServletResponse response)
Disable the caching in the response header.static void
setNoCacheHeadersAlways(HttpServletResponse response)
Disable the caching in the response header always.static String
urlDecode(String value)
Decode the given URL encode value.static String
urlEncode(String value)
URL encode the given value making it safe to pass in a URL.
-
-
-
Field Detail
-
PARAM_OBJECT_TAG
public static final String PARAM_OBJECT_TAG
The using objectTag request parameter name.- See Also:
- Constant Field Values
-
PARAM_AcrobatPluginVersion
public static final String PARAM_AcrobatPluginVersion
The url parameter which specifies the Adobe Acrobat plugin version detected using JavaScript.- See Also:
- Constant Field Values
-
DEFAULT_PDF_OPEN_PARAMS
public static final String DEFAULT_PDF_OPEN_PARAMS
The default PDF open window URL parameters (show toolbar, show navpanes, show scrollbar).- See Also:
- Constant Field Values
-
-
Method Detail
-
getAddressFromRequest
public static String getAddressFromRequest(HttpServletRequest request)
Return the remote address for the given request, using the X-Forwarded-For if available. This code was derived from http://r.va.gg/2011/07/handling-x-forwarded-for-in-java-and-tomcat.html- Parameters:
request
- the http request- Returns:
- the address from the given request
- Since:
- 4.0.0
-
getReferer
public static String getReferer(HttpServletRequest request)
Return the referer HTTP Header value.- Parameters:
request
- the servlet request (required)- Returns:
- the referer HTTP Header value, or null if not found
- Since:
- 4.0.0
-
urlEncode
public static String urlEncode(String value)
URL encode the given value making it safe to pass in a URL.- Parameters:
value
- the value to URL encode- Returns:
- the URL encoded value
-
urlDecode
public static String urlDecode(String value)
Decode the given URL encode value.- Parameters:
value
- the URL encode value- Returns:
- the URL decoded value
-
getUserAgent
public static String getUserAgent(HttpServletRequest request)
Return the user agent header (browser string).- Parameters:
request
- the servlet request- Returns:
- the user agent header
-
getBrowserType
public static ServletUtils.BrowserType getBrowserType(HttpServletRequest request)
Return the browser type [IE, FF, OTHER].- Parameters:
request
- the servlet request- Returns:
- the browser type [IE, FF, OTHER]
-
isIE6to8
public static boolean isIE6to8(HttpServletRequest request)
Return true if the User Agent header is [ "MSIE 6.0" | "MSIE 7.0" | "MSIE 8.0" ].- Parameters:
request
- the servlet request- Returns:
- true if the User Agent header is [ "MSIE 6.0" | "MSIE 7.0" | "MSIE 8.0" ]
-
isIE6to9
public static boolean isIE6to9(HttpServletRequest request)
Return true if the User Agent header is IE6 to IE9 [ "MSIE 6.0" | "MSIE 7.0" | "Trident/4.0" | "Trident/5.0" ].- Parameters:
request
- the servlet request- Returns:
- true if the User Agent header is IE6 to IE9 [ "MSIE 6.0" | "MSIE 7.0" | "Trident/4.0" | "Trident/5.0" ]
- Since:
- 4.0.1
-
isIEandNotV8to10
public static boolean isIEandNotV8to10(HttpServletRequest request)
Return true if the browser is IE and not version IE8 to IE10.- Parameters:
request
- the servlet request- Returns:
- true if the browser is IE and not version IE8 to IE10
- Since:
- 4.0.0
-
isContentTypeRequest
public static boolean isContentTypeRequest(HttpServletRequest request)
Return true if an IE Plug-in "contype" type request.- Parameters:
request
- the servlet request- Returns:
- true if an IE Plug-in "contype" type request
-
getAcrobatPluginVersion
public static Double getAcrobatPluginVersion(HttpServletRequest request)
Return Adobe Acrobat (Reader) plug-in version number if defined in the request parameter 'AcrobatPluginVersion', or null otherwise.- Parameters:
request
- the servlet request- Returns:
- the Adobe Acrobat (Reader) plug-in version number if defined, or null otherwise
-
isDoubleObjectTagRequest
public static boolean isDoubleObjectTagRequest(HttpServletRequest request)
Return true if a HTML object tag double request for a PDF form which should be ignored.- Parameters:
request
- the servlet request- Returns:
- true if a HTML object tag double request for a PDF form which should be ignored
-
acceptsGzipEncoding
public static boolean acceptsGzipEncoding(HttpServletRequest request)
Check whether the request accepts encoding gzip.- Parameters:
request
- the http request- Returns:
- true if it allows encoding gzip
-
setContentDisposition
public static void setContentDisposition(HttpServletRequest request, HttpServletResponse response, String contentType, String filename, boolean saveAsAttachment)
Set content disposition for the response.- Parameters:
request
- http requestresponse
- http responsecontentType
- the content typefilename
- file namesaveAsAttachment
- a flag checks whether a user wants to save as attachment
-
setContentDownloadHeader
public static void setContentDownloadHeader(HttpServletResponse response, String filename)
Sets the content download header.- Parameters:
response
- the response (required)filename
- the filename (required)- Since:
- 3.6.5
-
setNoCacheHeaders
public static void setNoCacheHeaders(HttpServletRequest request, HttpServletResponse response)
Disable the caching in the response header.- Parameters:
request
- HTTP requestresponse
- HTTP response
-
setNoCacheHeadersAlways
public static void setNoCacheHeadersAlways(HttpServletResponse response)
Disable the caching in the response header always.- Parameters:
response
- HTTP response- Since:
- 3.6.0
-
setCacheHeaders
public static void setCacheHeaders(HttpServletRequest request, HttpServletResponse response, int durationSecs)
Set caching time in the header- Parameters:
request
- HTTP requestresponse
- HTTP responsedurationSecs
- time duration
-
renderByteArray
public static long renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray) throws IOException
Render a byte array to the browser.- Parameters:
request
- HTTP requestresponse
- HTTP responsebyteArray
- the byte array to render- Returns:
- byte array length
- Throws:
IOException
- if If an I/O error has occurred.
-
renderByteArray
public static long renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray, boolean doCompress) throws IOException
Render a byte array to the browser.- Parameters:
request
- HTTP requestresponse
- HTTP responsebyteArray
- the byte array to renderdoCompress
- whether to compress in the render- Returns:
- byte array length
- Throws:
IOException
- If an I/O error has occurred.
-
renderByteArray
public static long renderByteArray(HttpServletRequest request, HttpServletResponse response, byte[] byteArray, byte[] byteArrayGzip, boolean doCompress) throws IOException
Render a byte array or zipped byte array to the browser- Parameters:
request
- HTTP requestresponse
- HTTP responsebyteArray
- the byte array to renderbyteArrayGzip
- Gzipped byte array to renderdoCompress
- whether allows gzip encoding- Returns:
- byte array length
- Throws:
IOException
- If an I/O error has occurred.
-
sendRedirect
public static void sendRedirect(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the new URL path.- Parameters:
request
- HTTP requestresponse
- HTTP responsepath
- the new URL path
-
sendRedirect
public static void sendRedirect(HttpServletResponse response, String location, Map<String,?> params)
Redirect the request to the specified location with the given parameters.- Parameters:
response
- the response (required)location
- the location to redirect to (required)params
- the request parameter- Since:
- 17.10.0
-
sendRedirectParentPage
public static void sendRedirectParentPage(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the specified URL and redirect any parent page if the request was from an IFRAME.- Parameters:
request
- HTTP requestresponse
- HTTP responsepath
- the new URL path to redirect to
-
sendRedirectAferPdfSubmit
public static void sendRedirectAferPdfSubmit(HttpServletRequest request, HttpServletResponse response, String path)
Redirect a request to the new URL path.- Parameters:
request
- HTTP requestresponse
- HTTP responsepath
- the new URL path
-
getCookie
public static Cookie getCookie(HttpServletRequest request, String name)
Returns the specified Cookie object, or null if the cookie does not exist.Copied from Apache ClickUtils method of the same name.
- Parameters:
request
- the servlet requestname
- the name of the cookie- Returns:
- the Cookie object if it exists, otherwise null
-
setCookie
public static Cookie setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, int maxAge, String path)
Sets the given cookie values in the servlet response. This will also put the cookie in a list of cookies to send with this request's response (so that in case of a redirect occurring down the chain, the first filter will always try to set this cookie again) The cookie secure flag is set if the request is secure.- Parameters:
request
- the servlet requestresponse
- the servlet responsename
- the cookie namevalue
- the cookie valuemaxAge
- the maximum age of the cookie in seconds. A negative value will expire the cookie at the end of the session, while 0 will delete the cookie.path
- the cookie path- Returns:
- the Cookie object created and set in the response
-
getCookieValue
public static String getCookieValue(HttpServletRequest request, String name)
Returns the value of the specified cookie as a String. If the cookie does not exist, the method returns null.- Parameters:
request
- the servlet requestname
- the name of the cookie- Returns:
- the value of the cookie, or null if the cookie does not exist.
-
getResourcePath
public static String getResourcePath(HttpServletRequest request)
Return the page resource path from the request. For example:http://www.mycorp.com/banking/secure/login.htm -> /secure/login.htm
- Parameters:
request
- the page servlet request (required)- Returns:
- the page resource path from the request
- Since:
- 5.1.0
-
getRequestParameterDebug
public static String getRequestParameterDebug(HttpServletRequest request, boolean decode)
Return a debug string of the request parameter names and values.- Parameters:
request
- the HTTP servlet requestdecode
- a flag to decode any URL encoded value- Returns:
- a debug string of the request values
-
regenerateSession
public static void regenerateSession(HttpServletRequest request)
Generates a new session containing all attributes in the current session.- Parameters:
request
- the HTTP servlet request
-
getRequestInfoDebug
public static String getRequestInfoDebug(HttpServletRequest request)
Return a request info debug string for the given request- Parameters:
request
- the request to debug (required)- Returns:
- the request debug info string
- Since:
- 4.3.2
-
getRequestInfoDebug
public static String getRequestInfoDebug(HttpServletRequest request, Map<String,Object> parameters)
Return a request info debug string for the given request and parameters map.- Parameters:
request
- the request to debug (required)parameters
- the request parameters to debug (optional)- Returns:
- the request debug info string
- Since:
- 18.5.0
-
getRequestErrorDebug
public static String getRequestErrorDebug(HttpServletRequest request, Map<String,Object> parameters)
Return a request error debug string for the given request and parameters map.- Parameters:
request
- the request to debug (required)parameters
- the request parameters to debug (optional)- Returns:
- the request debug info string
- Since:
- 18.5.0
-
getRequestURI
public static String getRequestURI(HttpServletRequest request)
Return the requestURI from the request. For example:http://www.mycorp.com/banking/secure/login.htm -> /banking/secure/login.htm
Copied from Apache ClickUtils method of the same name.
- Parameters:
request
- the page servlet request- Returns:
- the requestURI from the request
- Since:
- 17.10.0
-
-