org.zkoss.web.servlet.http
Class Https

java.lang.Object
  extended by org.zkoss.web.servlet.Servlets
      extended by org.zkoss.web.servlet.http.Https

public class Https
extends Servlets

The Servlet-related utilities.

Author:
tomyeh

Nested Class Summary
 
Nested classes/interfaces inherited from class org.zkoss.web.servlet.Servlets
Servlets.ClientIdentifier
 
Field Summary
 
Fields inherited from class org.zkoss.web.servlet.Servlets
APPEND_PARAM, IGNORE_PARAM, OVERWRITE_URI, PASS_THRU_ATTR
 
Constructor Summary
Https()
           
 
Method Summary
static String encodeRedirectURL(javax.servlet.ServletContext ctx, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, String uri, Map params, int mode)
          Encodes an URL such that it can be used with HttpServletResponse.sendRedirect.
static String getCompleteContext(javax.servlet.http.HttpServletRequest hreq)
          Gets the complete context path, including protocol, server, ports, and context.
static String getCompleteServerName(javax.servlet.http.HttpServletRequest hreq)
          Gets the complete server name, including protocol, server, and ports.
static String getCookieValue(javax.servlet.http.HttpServletRequest request, String name)
          Gets the value of the specified cookie, or null if not found.
static String getOriginContextPath(javax.servlet.ServletRequest request)
          Gets the original context path regardless of being forwarded or not.
static String getOriginFullRequest(javax.servlet.ServletRequest request)
          Returns the request uri + query string.
static String getOriginFullServlet(javax.servlet.ServletRequest request)
          Returns the servlet path + path info + query string.
static String getOriginPathInfo(javax.servlet.ServletRequest request)
          Gets the path info regardless of being forwarded or not.
static String getOriginQueryString(javax.servlet.ServletRequest request)
          Gets the query string regardless of being forwarded or not.
static String getOriginRequestURI(javax.servlet.ServletRequest request)
          Gets the request URI regardless of being forwarded or not.
static String getOriginServletPath(javax.servlet.ServletRequest request)
          Gets the original servlet path regardless of being forwarded or not.
static String getServletURI(javax.servlet.http.HttpServletRequest request)
          Returns the servlet uri of the request.
static String getThisContextPath(javax.servlet.ServletRequest request)
          Gets the context path of this page.
static String getThisPathInfo(javax.servlet.ServletRequest request)
          Gets the path info of this page.
static String getThisQueryString(javax.servlet.ServletRequest request)
          Gets the query string of this page.
static String getThisRequestURI(javax.servlet.ServletRequest request)
          Gets the request URI of this page.
static String getThisServletPath(javax.servlet.ServletRequest request)
          Gets the servlet path of this page.
static byte[] gzip(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, InputStream content1, byte[] content2)
          Compresses the content into an byte array, or null if the browser doesn't support the compression (accept-encoding).
static void sendRedirect(javax.servlet.ServletContext ctx, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, String uri, Map params, int mode)
          Redirects to another URL by prefixing the context path and encoding with encodeRedirectURL.
static Date toDate(String sdate)
          Converts a date string to a Date instance.
static String toString(Date date)
          Converts a data to a string complaint to HTTP protocol.
static void write(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.zkoss.util.media.Media media, boolean download, boolean repeatable)
          Write the specified media to HTTP response.
 
Methods inherited from class org.zkoss.web.servlet.Servlets
addExtendletContext, forward, forward, generateURI, getBrowser, getBrowser, getBrowser, getBrowser, getClientIdentifier, getContextPaths, getDetail, getExtendletContext, getExtension, getExtension, getIECompatibilityInfo, getLimitTimeOffer, getNormalPath, getRequestDispatcher, getResource, getResourceAsStream, getUserAgent, include, include, isBrowser, isBrowser, isExplorer, isExplorer, isExplorer7, isExplorer7, isForwarded, isGecko, isGecko, isGecko3, isGecko3, isHilDevice, isHilDevice, isIncluded, isOfferExpired, isOpera, isOpera, isRobot, isRobot, isSafari, isSafari, isServlet23, isServlet24, isServlet3, isUniversalURL, locate, removeExtendletContext, setClientIdentifier
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Https

public Https()
Method Detail

gzip

public static final byte[] gzip(javax.servlet.http.HttpServletRequest request,
                                javax.servlet.http.HttpServletResponse response,
                                InputStream content1,
                                byte[] content2)
                         throws IOException
Compresses the content into an byte array, or null if the browser doesn't support the compression (accept-encoding).

Parameters:
content1 - the first part of the content to compress; null to ignore. If you have multiple input streams, use java.io.SequenceInputStream to concatenate them
content2 - the second part of the content to compress; null to ignore.
Returns:
the compressed result in an byte array, null if the browser doesn't support the compression.
Throws:
IOException
Since:
2.4.1

getCompleteServerName

public static final String getCompleteServerName(javax.servlet.http.HttpServletRequest hreq)
Gets the complete server name, including protocol, server, and ports. Example, http://mysite.com:8080


getCompleteContext

public static final String getCompleteContext(javax.servlet.http.HttpServletRequest hreq)
Gets the complete context path, including protocol, server, ports, and context. Example, http://mysite.com:8080/we


getCookieValue

public static final String getCookieValue(javax.servlet.http.HttpServletRequest request,
                                          String name)
Gets the value of the specified cookie, or null if not found.

Parameters:
name - the cookie's name

getServletURI

public static final String getServletURI(javax.servlet.http.HttpServletRequest request)
Returns the servlet uri of the request. A servlet uri is getServletPath() + getPathInfo(). In other words, a servlet uri is a request uri without the context path.

However, HttpServletRequest.getRequestURI returns in encoded format, while this method returns in decode format (i.e., %nn is converted).


getThisContextPath

public static final String getThisContextPath(javax.servlet.ServletRequest request)
Gets the context path of this page. Unlike getContextPath, it detects whether the current page is included.

Returns:
"/" if request is not a http request

getThisServletPath

public static final String getThisServletPath(javax.servlet.ServletRequest request)
Gets the servlet path of this page. Unlike getServletPath, it detects whether the current page is included.

Returns:
"/" if request is not a http request

getThisRequestURI

public static final String getThisRequestURI(javax.servlet.ServletRequest request)
Gets the request URI of this page. Unlike getRequestURI, it detects whether the current page is included.

Returns:
"/" if request is not a http request

getThisQueryString

public static final String getThisQueryString(javax.servlet.ServletRequest request)
Gets the query string of this page. Unlike getQueryString, it detects whether the current page is included.

Returns:
null if request is not a http request

getThisPathInfo

public static final String getThisPathInfo(javax.servlet.ServletRequest request)
Gets the path info of this page. Unlike getPathInfo, it detects whether the current page is included.

Returns:
null if request is not a http request

getOriginContextPath

public static final String getOriginContextPath(javax.servlet.ServletRequest request)
Gets the original context path regardless of being forwarded or not. Unlike getContextPath, it won't be affected by forwarding.


getOriginServletPath

public static final String getOriginServletPath(javax.servlet.ServletRequest request)
Gets the original servlet path regardless of being forwarded or not. Unlike getServletPath, it won't be affected by forwarding.


getOriginRequestURI

public static final String getOriginRequestURI(javax.servlet.ServletRequest request)
Gets the request URI regardless of being forwarded or not. Unlike HttpServletRequest.getRequestURI, it won't be affected by forwarding.


getOriginPathInfo

public static final String getOriginPathInfo(javax.servlet.ServletRequest request)
Gets the path info regardless of being forwarded or not. Unlike getPathInfo, it won't be affected by forwarding.


getOriginQueryString

public static final String getOriginQueryString(javax.servlet.ServletRequest request)
Gets the query string regardless of being forwarded or not. Unlike getQueryString, it won't be affected by forwarding.


getOriginFullServlet

public static final String getOriginFullServlet(javax.servlet.ServletRequest request)
Returns the servlet path + path info + query string. Because the path info is decoded, the return string can be considered as decoded. On the other hand getOriginFullRequest(javax.servlet.ServletRequest) is in the encoded form.

See Also:
getOriginFullRequest(javax.servlet.ServletRequest)

getOriginFullRequest

public static final String getOriginFullRequest(javax.servlet.ServletRequest request)
Returns the request uri + query string. Unlike getOriginFullServlet(javax.servlet.ServletRequest), this is in the encoded form (e.g., %nn still exists, if any). Note: request uri = context path + servlet path + path info.


sendRedirect

public static final void sendRedirect(javax.servlet.ServletContext ctx,
                                      javax.servlet.http.HttpServletRequest request,
                                      javax.servlet.http.HttpServletResponse response,
                                      String uri,
                                      Map params,
                                      int mode)
                               throws IOException,
                                      javax.servlet.ServletException
Redirects to another URL by prefixing the context path and encoding with encodeRedirectURL.

It encodes the URI automatically (encodeRedirectURL). Parameters are encoded by Encodes.setToQueryString(StringBuffer,Map).

Like Encodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String), the servlet context is prefixed if uri starts with "/". In other words, to redirect other application, the complete URL must be used, e.g., http://host/other.

Also, HttpServletResponse.encodeRedirectURL is called automatically.

Parameters:
request - the request; used only if params is not null
response - the response
uri - the redirect uri (not encoded; not including context-path), or null to denote getOriginFullServlet(javax.servlet.ServletRequest) It is OK to relevant (without leading '/'). If starts with "/", the context path of request is assumed. To reference to foreign context, use "~ctx/" where ctx is the context path of the foreign context (without leading '/').
Notice that, since 3.6.3, uri could contain '*' (to denote locale and browser). Refer to Servlets.locate(javax.servlet.ServletContext, javax.servlet.ServletRequest, java.lang.String, org.zkoss.util.resource.Locator).
params - the attributes that will be set when the redirection is back; null to ignore; format: (String, Object)
mode - one of Servlets.OVERWRITE_URI, Servlets.IGNORE_PARAM, and Servlets.APPEND_PARAM. It defines how to handle if both uri and params contains the same parameter.
Throws:
IOException
javax.servlet.ServletException

encodeRedirectURL

public static final String encodeRedirectURL(javax.servlet.ServletContext ctx,
                                             javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response,
                                             String uri,
                                             Map params,
                                             int mode)
Encodes an URL such that it can be used with HttpServletResponse.sendRedirect.


toDate

public static final Date toDate(String sdate)
                         throws ParseException
Converts a date string to a Date instance. The format of the giving date string must be complaint to HTTP protocol.

Throws:
ParseException - if the string is not valid

toString

public static final String toString(Date date)
Converts a data to a string complaint to HTTP protocol.


write

public static void write(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response,
                         org.zkoss.util.media.Media media,
                         boolean download,
                         boolean repeatable)
                  throws IOException
Write the specified media to HTTP response.

Parameters:
response - the HTTP response to write to
media - the content to be written
download - whether to cause the download to show at the client. If true, it sets the Content-Disposition header.
repeatable - whether to use RepeatableInputStream or RepeatableReader to read the media. It is better to specify true if the media might be read repeatedly.
Throws:
IOException
Since:
3.5.0


Copyright © 2015. All rights reserved.