Package org.zkoss.zk.ui.http

## Class SimpleWebApp

- java.lang.Object
- - org.zkoss.zk.ui.impl.AbstractWebApp
  - - org.zkoss.zk.ui.http.SimpleWebApp

- All Implemented Interfaces:
    `Locator`, `Scope`, `WebAppCtrl`, `WebApp`

      public class SimpleWebApp
      extends AbstractWebApp

  A servlet-based Web application.
  Author:
    tomyeh

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SimpleWebApp()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `addScopeListener​(ScopeListener listener)` | Adds a listener to listen whether this scope is changed.
    `java.lang.Object` | `getAttribute​(java.lang.String name)` | Returns the value of the specified custom attribute.
    `java.util.Map<java.lang.String,​java.lang.Object>` | `getAttributes()` | Returns a map of custom attributes associated with this object.
    `java.lang.String` | `getDirectory()` | Returns the directory used to resolve the relative path, or null if relative path is not allowed.
    `java.lang.String` | `getInitParameter​(java.lang.String name)` | Returns the value of the named context-wide initialization parameter, or null if the parameter does not exist.
    `java.lang.Iterable<java.lang.String>` | `getInitParameterNames()` | Returns the names of the context's initialization parameters as an iterable String objects (never null).
    `java.lang.String` | `getMimeType​(java.lang.String file)` | Returns the MIME type of the specified file, or null if the MIME type is not known.
    `java.lang.String` | `getRealPath​(java.lang.String path)` | Returns a String containing the real path for a given virtual path.
    `java.net.URL` | `getResource​(java.lang.String path)` | Returns a URL to the resource that is mapped to a specified path.
    `java.io.InputStream` | `getResourceAsStream​(java.lang.String path)` | Returns the resource located at the named path as an InputStream object.
    `java.util.Set<java.lang.String>` | `getResourcePaths​(java.lang.String path)` | Returns a directory-like listing of all the paths to resources within the web application whose longest sub-path matches the supplied path argument.
    `java.lang.String` | `getResourceURI()` | Returns the URI for ZK resource.
    `java.lang.String` | `getResourceURI​(boolean encode)` | Returns the URI for ZK resource that can be encoded or not.
    `javax.servlet.ServletContext` | `getServletContext()` | Returns the servlet context of this application.
    `java.lang.String` | `getUpdateURI()` | Returns the URI for asynchronous update.
    `java.lang.String` | `getUpdateURI​(boolean encode)` | Returns the URI for asynchronous update that can be encoded or not.
    `WebApp` | `getWebApp​(java.lang.String uripath)` | Returns the WebApp that corresponds to a specified URL on the server, or null if either none exists or the container wishes to restrict this access..
    `boolean` | `hasAttribute​(java.lang.String name)` | Returns if a custom attribute is associated with this object (scope).
    `void` | `init​(java.lang.Object context, Configuration config)` | Initializes this Web application.
    `void` | `log​(java.lang.String msg)` | Writes the specified message to a servlet log file, usually an event log.
    `void` | `log​(java.lang.String msg, java.lang.Throwable ex)` | Writes an explanatory message and a stack trace for a given Throwable exception to the servlet log file.
    `java.lang.Object` | `removeAttribute​(java.lang.String name)` | Removes the specified custom attribute.
    `boolean` | `removeScopeListener​(ScopeListener listener)` | Removes a change listener from this scope.
    `java.lang.Object` | `setAttribute​(java.lang.String name, java.lang.Object value)` | Sets the value of the specified custom attribute.

    - ### Methods inherited from class org.zkoss.zk.ui.impl.AbstractWebApp

      `destroy, getAppName, getAttribute, getAuDecoder, getBuild, getBuildStamp, getConfiguration, getDesktopCache, getDesktopCacheProvider, getFailoverManager, getIdGenerator, getSessionCache, getSubversion, getUiEngine, getUiFactory, getVersion, hasAttribute, loadBuild, removeAttribute, sessionDestroyed, sessionDidActivate, sessionWillPassivate, setAppName, setAttribute, setAuDecoder, setDesktopCacheProvider, setFailoverManager, setIdGenerator, setSessionCache, setUiEngine, setUiFactory`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleWebApp

          public SimpleWebApp()

  - ### Method Detail

    - #### init

          public void init​(java.lang.Object context,
                           Configuration config)

      Description copied from interface: `WebAppCtrl`
      Initializes this Web application.
      Specified by:
        `init` in interface `WebAppCtrl`
      Overrides:
        `init` in class `AbstractWebApp`
      Parameters:
        `context` - the servlet context, if servlets are used. Currently, ZK supports only servlets. In the future there might be more to support.
        `config` - the configuration (never null)

    - #### getAttribute

          public java.lang.Object getAttribute​(java.lang.String name)

      Description copied from interface: `WebApp`
      Returns the value of the specified custom attribute.

    - #### hasAttribute

          public boolean hasAttribute​(java.lang.String name)

      Description copied from interface: `Scope`
      Returns if a custom attribute is associated with this object (scope).

      Notice that `null` is a valid value, so you can tell if an attribute is associated by examining the return value of `Scope.getAttribute(java.lang.String)`.

    - #### setAttribute

          public java.lang.Object setAttribute​(java.lang.String name,
                                               java.lang.Object value)

      Description copied from interface: `WebApp`
      Sets the value of the specified custom attribute.
      Returns:
        the previous value if any (since ZK 5)

    - #### removeAttribute

          public java.lang.Object removeAttribute​(java.lang.String name)

      Description copied from interface: `WebApp`
      Removes the specified custom attribute.
      Returns:
        the previous value if any (since ZK 5)

    - #### getAttributes

          public java.util.Map<java.lang.String,​java.lang.Object> getAttributes()

      Description copied from interface: `WebApp`
      Returns a map of custom attributes associated with this object.

    - #### addScopeListener

          public boolean addScopeListener​(ScopeListener listener)

      Description copied from interface: `Scope`
      Adds a listener to listen whether this scope is changed. The listener is called when a custom attribute is added, removed, or the parent is changed.
      Returns:
        weather the listener is added successfully. Note: if the resolver was added before, it won't be added again and this method returns false.

    - #### removeScopeListener

          public boolean removeScopeListener​(ScopeListener listener)

      Description copied from interface: `Scope`
      Removes a change listener from this scope.
      Returns:
        false if listener is not added before.

    - #### getUpdateURI

          public java.lang.String getUpdateURI()

      Description copied from interface: `WebApp`
      Returns the URI for asynchronous update.

      Both `WebApp.getUpdateURI()` and `Desktop.getUpdateURI(java.lang.String)` are encoded with `Execution.encodeURL(java.lang.String)`

      See Also:
        `Desktop.getUpdateURI(java.lang.String)`

    - #### getUpdateURI

          public java.lang.String getUpdateURI​(boolean encode)

      Description copied from interface: `WebApp`
      Returns the URI for asynchronous update that can be encoded or not.
      Parameters:
        `encode` - whether to encode with `Execution.encodeURL(java.lang.String)`. It is the same as `WebApp.getUpdateURI()` if `encode` is true.

    - #### getResourceURI

          public java.lang.String getResourceURI()

      Description copied from interface: `WebApp`
      Returns the URI for ZK resource.

      Both `WebApp.getResourceURI()` and `Desktop.getResourceURI(java.lang.String)` are encoded with `Execution.encodeURL(java.lang.String)`

      See Also:
        `Desktop.getResourceURI(java.lang.String)`

    - #### getResourceURI

          public java.lang.String getResourceURI​(boolean encode)

      Description copied from interface: `WebApp`
      Returns the URI for ZK resource that can be encoded or not.
      Parameters:
        `encode` - whether to encode with `Execution.encodeURL(java.lang.String)`. It is the same as `WebApp.getResourceURI()` if `encode` is true.

    - #### getWebApp

          public WebApp getWebApp​(java.lang.String uripath)

      Description copied from interface: `WebApp`
      Returns the WebApp that corresponds to a specified URL on the server, or null if either none exists or the container wishes to restrict this access..

    - #### getDirectory

          public java.lang.String getDirectory()

      Description copied from interface: `Locator`
      Returns the directory used to resolve the relative path, or null if relative path is not allowed.

      Note: if the returned directory is not null, it must end with '/'.

    - #### getResource

          public java.net.URL getResource​(java.lang.String path)

      Description copied from interface: `WebApp`
      Returns a URL to the resource that is mapped to a specified path.

      Notice that, since 3.6.3, this method can retrieve the resource starting with "~./". If the path contains the wildcard ('*'), you can use `Execution.locate(java.lang.String)` to convert it to a proper string first.

      Returns:
        a URL for reading the resource, or null if the resource could not be found or the caller doesn't have adequate privileges to get the resource

    - #### getResourceAsStream

          public java.io.InputStream getResourceAsStream​(java.lang.String path)

      Description copied from interface: `WebApp`
      Returns the resource located at the named path as an InputStream object.

      Notice that, since 3.6.3, this method can retrieve the resource starting with "~./". If the path contains the wildcard ('*'), you can use `Execution.locate(java.lang.String)` to convert it to a proper string first.

      Returns:
        an input stream for reading the resource, or null if the resource could not be found or the caller doesn't have adequate privileges to get the resource

    - #### getInitParameter

          public java.lang.String getInitParameter​(java.lang.String name)

      Description copied from interface: `WebApp`
      Returns the value of the named context-wide initialization parameter, or null if the parameter does not exist.

    - #### getInitParameterNames

          public java.lang.Iterable<java.lang.String> getInitParameterNames()

      Description copied from interface: `WebApp`
      Returns the names of the context's initialization parameters as an iterable String objects (never null).

    - #### getRealPath

          public java.lang.String getRealPath​(java.lang.String path)

      Description copied from interface: `WebApp`
      Returns a String containing the real path for a given virtual path. For example, the path "/index.html" returns the absolute file path on the server's filesystem would be served by a request for "http://host/contextPath/index.html", where contextPath is the context path of this `WebApp`.

      Notice that ZK don't count on this method to retrieve resources. If you want to change the mapping of URI to different resources, override `UiFactory.getPageDefinition(org.zkoss.zk.ui.sys.RequestInfo, java.lang.String)` instead.

    - #### getMimeType

          public java.lang.String getMimeType​(java.lang.String file)

      Description copied from interface: `WebApp`
      Returns the MIME type of the specified file, or null if the MIME type is not known. The MIME type is determined by the configuration of the Web container.

      Common MIME types are "text/html" and "image/gif".

    - #### getResourcePaths

          public java.util.Set<java.lang.String> getResourcePaths​(java.lang.String path)

      Description copied from interface: `WebApp`
      Returns a directory-like listing of all the paths to resources within the web application whose longest sub-path matches the supplied path argument. Paths indicating subdirectory paths end with a '/'. The returned paths are all relative to the root of the web application and have a leading '/'. For example, for a web application containing

                  /welcome.html
                  /catalog/index.html
                  /catalog/products.html
                  /catalog/offers/books.html
                  /catalog/offers/music.html
                  /customer/login.jsp
                  /WEB-INF/web.xml
                  /WEB-INF/classes/com.acme.OrderServlet.class,

                  getResourcePaths("/") returns {"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}
                  getResourcePaths("/catalog/") returns {"/catalog/index.html", "/catalog/products.html", "/catalog/offers/"}.

    - #### getServletContext

          public javax.servlet.ServletContext getServletContext()

      Description copied from interface: `WebApp`
      Returns the servlet context of this application.

    - #### log

          public void log​(java.lang.String msg)

      Description copied from interface: `WebApp`
      Writes the specified message to a servlet log file, usually an event log. The name and type of the servlet log file is specific to the servlet container.

    - #### log

          public void log​(java.lang.String msg,
                          java.lang.Throwable ex)

      Description copied from interface: `WebApp`
      Writes an explanatory message and a stack trace for a given Throwable exception to the servlet log file. The name and type of the servlet log file is specific to the servlet container, usually an event log.