Packages

t

xitrum.view

Responder

trait Responder extends AnyRef

When responding text, charset is automatically set, as advised by Google: http://code.google.com/speed/page-speed/docs/rendering.html#SpecifyCharsetEarly

Self Type
Action
Linear Supertypes
AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Responder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  11. def isDoneResponding: Boolean
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  16. def onDoneResponding(): Unit

    Called when the response or the last chunk (in case of chunked response) has been sent to the client.

  17. def respond(): ChannelFuture
  18. def respond404Page(): Unit
  19. def respond500Page(): Unit
  20. def respondBinary(byteBuf: ByteBuf): ChannelFuture

    If Content-Type header is not set, it is set to "application/octet-stream".

    If Content-Type header is not set, it is set to "application/octet-stream".

    byteBuf

    Will be released

  21. def respondBinary(bytes: Array[Byte]): ChannelFuture

    If Content-Type header is not set, it is set to "application/octet-stream".

  22. def respondDefault404Page(): ChannelFuture
  23. def respondDefault500Page(): ChannelFuture
  24. def respondEventSource(data: Any, event: String = "message"): ChannelFuture

    To respond event source, call this method as many time as you want.

    To respond event source, call this method as many time as you want. Event Source response is a special kind of chunked response, data must be UTF-8. See: - http://sockjs.github.com/sockjs-protocol/sockjs-protocol-0.3.3.html#section-94 - http://dev.w3.org/html5/eventsource/

    No need to call setChunked() before calling this method.

  25. def respondFile(path: String): ChannelFuture

    Sends a file using X-SendFile.

    Sends a file using X-SendFile. If Content-Type header is not set, it is guessed from the file name.

    path

    absolute or relative to the current working directory In some cases, the current working directory is not always the root directory of the project (https://github.com/xitrum-framework/xitrum/issues/47), you may need to use xitrum.Config.root to calculate the correct absolute path from a relative path. To sanitize the path, use xitrum.util.PathSanitizer.

  26. def respondHtml(any: Any): ChannelFuture

    Content-Type header is set to "text/html".

  27. def respondJs(any: Any): ChannelFuture

    Content-Type header is set to "application/javascript".

  28. def respondJson(ref: AnyRef): ChannelFuture

    Converts the given Scala object to JSON object, and responds it.

    Converts the given Scala object to JSON object, and responds it. If you just want to respond a text with "application/json" as content type, use respondJsonText(text).

    Content-Type header is set to "application/json". "text/json" would make the browser download instead of displaying the content. It makes debugging a pain.

  29. def respondJsonP(ref: AnyRef, function: String): ChannelFuture

    Converts the given Scala object to JSON object, wraps it with the given JavaScript function name, and responds.

    Converts the given Scala object to JSON object, wraps it with the given JavaScript function name, and responds. If you already have a JSON text, thus no conversion is needed, use respondJsonPText.

    Content-Type header is set to "application/javascript".

  30. def respondJsonPText(text: Any, function: String): ChannelFuture

    Wraps the text with the given JavaScript function name, and responds.

    Wraps the text with the given JavaScript function name, and responds.

    Content-Type header is set to "application/javascript".

  31. def respondJsonText(any: Any): ChannelFuture

    Content-Type header is set to "application/json".

  32. def respondLastChunk(trailingHeaders: HttpHeaders = EmptyHttpHeaders.INSTANCE): ChannelFuture

    See setChunked.

  33. def respondResource(path: String): ChannelFuture

    Sends a file from public directory in one of the entry (may be a JAR file) in classpath.

    Sends a file from public directory in one of the entry (may be a JAR file) in classpath. If Content-Type header is not set, it is guessed from the file name.

    path

    Relative to an entry in classpath, without leading "/"

  34. def respondText(text: Any, fallbackContentType: String = null, convertXmlToXhtml: Boolean = true): ChannelFuture

    fallbackContentType

    Only used if Content-Type header has not been set. If not given and Content-Type header is not set, it is set to "application/xml" if text param is Node or NodeSeq, otherwise it is set to "text/plain".

    convertXmlToXhtml


    .toString by default returns

    which is rendered as 2
    tags on some browsers! Set to false if you really want XML, not XHTML. See http://www.scala-lang.org/node/492 and http://www.ne.jp/asahi/hishidama/home/tech/scala/xml.html

  35. def respondXml(any: Any): ChannelFuture

    Content-Type header is set to "application/xml".

  36. def setChunked(): Unit

    To respond chunks (http://en.wikipedia.org/wiki/Chunked_transfer_encoding): 1.

    To respond chunks (http://en.wikipedia.org/wiki/Chunked_transfer_encoding): 1. Call setChunked() to mark that the response will be chunked 2. Call respondXXX as normal, but as many times as you want 3. Lastly, call respondLastChunk()

    If Content-Type header is not set, it is set to "application/octet-stream".

  37. def setClientCacheAggressively(): Unit

    Tells the browser to cache static files for a long time.

    Tells the browser to cache static files for a long time. This works well even when this is a cluster of web servers behind a load balancer because the URL created by urlForResource is in the form: resource?etag

    Don't worry that browsers do not pick up new files after you modified them, see the doc about static files.

    Google recommends 1 year: http://code.google.com/speed/page-speed/docs/caching.html

    Both Max-age and Expires header are set because IEs use Expires, not max-age: http://mrcoles.com/blog/cookies-max-age-vs-expires/

  38. def setNoClientCache(): Unit

    Prevents client cache.

    Prevents client cache. Note that "pragma: no-cache" is linked to requests, not responses: http://palizine.plynt.com/issues/2008Jul/cache-control-attributes/

  39. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  40. def toString(): String
    Definition Classes
    AnyRef → Any
  41. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped