Package org.zkoss.web.servlet.http

## Interface Encodes.URLEncoder

- Enclosing class:
    Encodes

      public static interface Encodes.URLEncoder

  The URL encoder used to encode URL by including the session ID, and servlet context path. It is a plugin that `Encodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String)` will call to encode the URL.

  In a sophisticated environment, e.g., Reverse Proxy, the encoded URL might have to be prefixed with some special prefix. To do that, you can implement `Encodes.URLEncoder`, and then specify the class with the library property called `org.zkoss.web.servlet.http.URLEncoder`. When `encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String, org.zkoss.web.servlet.http.Encodes.URLEncoder)` encodes an URL, it will invoke `encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String, org.zkoss.web.servlet.http.Encodes.URLEncoder)` such you can do customized encoding, such as insert a special prefix.

  Since:
    3.0.1
  See Also:
    `Encodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String)`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `encodeURL​(javax.servlet.ServletContext ctx, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, java.lang.String url, Encodes.URLEncoder defaultEncoder)` | Encodes the specified URL by including the session ID and the servlet context path, if necessary.

- - ### Method Detail

    - #### encodeURL

          java.lang.String encodeURL​(javax.servlet.ServletContext ctx,
                                     javax.servlet.ServletRequest request,
                                     javax.servlet.ServletResponse response,
                                     java.lang.String url,
                                     Encodes.URLEncoder defaultEncoder)
                              throws java.lang.Exception

      Encodes the specified URL by including the session ID and the servlet context path, if necessary.

      Notice that url might contain "~" and other special characters that the Web server won't support. The implementation might invoke back the default encoding by use of the defaultEcoder parameter.

      Parameters:
        `url` - the URL to encode. It shall not include the servlet context path.
        `defaultEncoder` - the default encoder (never null).
      Throws:
        `java.lang.Exception`
      Since:
        5.0.0