org.scalatra

ScalatraServlet

abstract class ScalatraServlet extends HttpServlet with ScalatraKernel with Initializable

An implementation of the Scalatra DSL in a servlet. This is the recommended base class for most Scalatra applications. Use a servlet if:

$ - your Scalatra routes run in a subcontext of your web application. $ - you want Scalatra to have complete control of unmatched requests. $ - you think you want a filter just for serving static content with the default servlet; ScalatraServlet can do this too $ - you don't know the difference

See also

ScalatraFilter

Linear Supertypes
ScalatraKernel, ServletApiImplicits, Initializable, CoreDsl, Handler, HttpServlet, GenericServlet, Serializable, ServletConfig, Servlet, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ScalatraServlet
  2. ScalatraKernel
  3. ServletApiImplicits
  4. Initializable
  5. CoreDsl
  6. Handler
  7. HttpServlet
  8. GenericServlet
  9. Serializable
  10. ServletConfig
  11. Servlet
  12. AnyRef
  13. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ScalatraServlet()

Type Members

  1. type Config = ServletConfig

    Abstract type member for the configuration to use during initialization.

    Abstract type member for the configuration to use during initialization. Examples include ServletConfig and FilterConfig.

    Definition Classes
    ScalatraServletInitializable
  2. case class HaltException(status: Option[Int], reason: Option[String], headers: Map[String, String], body: Any) extends Throwable with ControlThrowable with Product with Serializable

    Implementation detail.

  3. class PassException extends Throwable with ControlThrowable

    Implementation detail.

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. val _params: MultiMapHeadView[String, String] with MapWithIndifferentAccess[String]

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  7. val _request: DynamicVariable[HttpServletRequest]

    A dynamic variable containing the currently-scoped request.

    A dynamic variable containing the currently-scoped request. Should not typically be invoked directly. Prefer request.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    #request

  8. val _response: DynamicVariable[HttpServletResponse]

    A dynamic variable containing the currently-scoped response.

    A dynamic variable containing the currently-scoped response. Should not typically be invoked directly. Prefer response.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    #response

  9. def addRoute(method: HttpMethod, routeMatchers: Iterable[RouteMatcher], action: ⇒ Any): Route

    Prepends a new route for the given HTTP method.

    Prepends a new route for the given HTTP method.

    Can be overriden so that subtraits can use their own logic. Possible examples: $ - restricting protocols $ - namespace routes based on class name $ - raising errors on overlapping entries.

    This is the method invoked by get(), post() etc.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    org.scalatra.ScalatraKernel#removeRoute

  10. def after(routeMatchers: RouteMatcher*)(fun: ⇒ Any): Unit

    Adds a filter to run after the route.

    Adds a filter to run after the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

    Definition Classes
    ScalatraKernelCoreDsl
  11. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  12. def before(routeMatchers: RouteMatcher*)(fun: ⇒ Any): Unit

    Adds a filter to run before the route.

    Adds a filter to run before the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

    Definition Classes
    ScalatraKernelCoreDsl
  13. implicit def booleanBlock2RouteMatcher(block: ⇒ Boolean): RouteMatcher

    Converts a boolean expression to a route matcher.

    Converts a boolean expression to a route matcher.

    block

    a block that evaluates to a boolean

    returns

    a route matcher based on block. The route matcher should return Some if the block is true and None if the block is false.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    org.scalatra.BooleanBlockRouteMatcher

  14. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. def contentType: String

    Gets the content type of the current response.

    Gets the content type of the current response.

    Definition Classes
    CoreDsl
  16. def contentTypeInferrer: ContentTypeInferrer

    A partial function to infer the content type from the action result.

    A partial function to infer the content type from the action result.

    returns

    $ - "text/plain" for String $ - "application/octet-stream" for a byte array $ - "text/html" for any other result

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  17. def contentType_=(contentType: String): Unit

    Sets the content type of the current response.

    Sets the content type of the current response.

    Definition Classes
    CoreDsl
  18. val defaultCharacterEncoding: String

    The default character encoding for requests and responses.

    The default character encoding for requests and responses.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  19. def delete(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

    Definition Classes
    ScalatraKernelCoreDsl
    See also

    get

  20. def destroy(): Unit

    Definition Classes
    GenericServlet → Servlet
  21. def doDelete(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  22. def doGet(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  23. def doHead(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  24. var doMethodNotAllowed: (Set[HttpMethod]) ⇒ Any

    Called if no route matches the current request method, but routes match for other methods.

    Called if no route matches the current request method, but routes match for other methods. By default, sends an HTTP status of 405 and an Allow header containing a comma-delimited list of the allowed methods.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  25. var doNotFound: () ⇒ Any

    Invoked when no route matches.

    Invoked when no route matches. By default, calls serveStaticResource(), and if that fails, calls resourceNotFound().

    This action can be overridden by a notFound block.

    Attributes
    protected
    Definition Classes
    ScalatraServletScalatraKernel
  26. def doOptions(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  27. def doPost(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  28. def doPut(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  29. def doTrace(arg0: HttpServletRequest, arg1: HttpServletResponse): Unit

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
    Annotations
    @throws() @throws()
  30. def environment: String

    A free form string representing the environment.

    A free form string representing the environment. org.scalatra.Environment is looked up as a system property, and if absent, and init parameter. The default value is development.

    Definition Classes
    ScalatraKernel
  31. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  33. def error(handler: ErrorHandler): Unit

    Defines an error handler for exceptions thrown in either the before block or a route action.

    Defines an error handler for exceptions thrown in either the before block or a route action.

    If the error handler does not match, the result falls through to the previously defined error handler. The default error handler simply rethrows the exception.

    The error handler is run before the after filters, and the result is rendered like a standard response. It is the error handler's responsibility to set any appropriate status code.

    Definition Classes
    ScalatraKernelCoreDsl
  34. var errorHandler: ErrorHandler

    The error handler function, called if an exception is thrown during before filters or the routes.

    The error handler function, called if an exception is thrown during before filters or the routes.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  35. def executeRoutes(): Unit

    Executes routes in the context of the current request and response.

    Executes routes in the context of the current request and response.

    $ 1. Executes each before filter with runFilters. $ 2. Executes the routes in the route registry with runRoutes for the request's method.

    1. The result of runRoutes becomes the _action result_. b. If no route matches the requested method, but matches are found for other methods, then the doMethodNotAllowed hook is run with each matching method. c. If no route matches any method, then the doNotFound hook is run, and its return value becomes the action result. $ 3. If an exception is thrown during the before filters or the route $ actions, then it is passed to the errorHandler function, and its $ result becomes the action result. $ 4. Executes the after filters with runFilters. $ 5. The action result is passed to renderResponse.
    Attributes
    protected
    Definition Classes
    ScalatraKernel
  36. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  37. def get(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

    The Scalatra DSL core methods take a list of org.scalatra.RouteMatcher and a block as the action body.

    The Scalatra DSL core methods take a list of org.scalatra.RouteMatcher and a block as the action body. The return value of the block is rendered through the pipeline and sent to the client as the response body.

    See org.scalatra.ScalatraKernel.renderResponseBody for the detailed behaviour and how to handle your response body more explicitly, and see how different return types are handled.

    The block is executed in the context of a CoreDsl instance, so all the methods defined in this trait are also available inside the block.

    get("/") {
      <form action="/echo">
        <label>Enter your name</label>
        <input type="text" name="name"/>
      </form>
    }
    
    post("/echo") {
      "hello {params('name)}!"
    }

    ScalatraKernel provides implicit transformation from boolean blocks, strings and regular expressions to org.scalatra.RouteMatcher, so you can write code naturally.

    get("/", request.getRemoteHost == "127.0.0.1") { "Hello localhost!" }
    Definition Classes
    ScalatraKernelCoreDsl
  38. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  39. def getInitParameter(arg0: String): String

    Definition Classes
    GenericServlet → ServletConfig
  40. def getInitParameterNames(): Enumeration[_]

    Definition Classes
    GenericServlet → ServletConfig
  41. def getLastModified(arg0: HttpServletRequest): Long

    Attributes
    protected[javax.servlet.http]
    Definition Classes
    HttpServlet
  42. def getServletConfig(): ServletConfig

    Definition Classes
    GenericServlet → Servlet
  43. def getServletContext(): ServletContext

    Definition Classes
    GenericServlet → ServletConfig
  44. def getServletInfo(): String

    Definition Classes
    GenericServlet → Servlet
  45. def getServletName(): String

    Definition Classes
    GenericServlet → ServletConfig
  46. def halt[T](status: Integer, body: T, headers: Map[String, String], reason: String)(implicit arg0: Manifest[T]): Nothing

    Immediately halts processing of a request.

    Immediately halts processing of a request. Can be called from either a before filter or a route.

    status

    the status to set on the response, or null to leave the status unchanged.

    body

    a result to render through the render pipeline as the body

    headers

    headers to add to the response

    reason

    the HTTP status reason to set, or null to leave unchanged.

    Definition Classes
    ScalatraKernelCoreDsl
  47. def handle(request: HttpServletRequest, response: HttpServletResponse): Unit

    Handles a request and renders a response.

    Handles a request and renders a response.

    $ 1. If the request lacks a character encoding, defaultCharacterEncoding is set to the request.

    $ 2. Sets the response's character encoding to defaultCharacterEncoding.

    $ 3. Binds the current request, response, and multiParams, and calls executeRoutes().

    Definition Classes
    ScalatraKernelHandler
  48. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  49. def init(config: ServletConfig): Unit

    Definition Classes
    ScalatraServlet → GenericServlet → Servlet
  50. def init(): Unit

    Definition Classes
    GenericServlet
    Annotations
    @throws()
  51. def initParameter(name: String): Option[String]

    Gets an init paramter from the config if it is a ServletConfig or a FilterConfig.

    Gets an init paramter from the config if it is a ServletConfig or a FilterConfig.

    name

    the name of the key

    returns

    an option containing the value of the parameter if defined, or None if the parameter is not set or the config type has no concept of init parameters.

    Definition Classes
    ScalatraKernel
  52. def initialize(config: ServletConfig): Unit

    Initializes the kernel.

    Initializes the kernel. Used to provide context that is unavailable when the instance is constructed, for example the servlet lifecycle. Should set the config variable to the parameter.

    config

    the configuration.

    Definition Classes
    ScalatraServletScalatraKernelInitializable
  53. def invoke(matchedRoute: MatchedRoute): Option[Any]

    Invokes a route or filter.

    Invokes a route or filter. The multiParams gathered from the route matchers are merged into the existing route params, and then the action is run.

    matchedRoute

    the matched route to execute

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  54. def isDevelopmentMode: Boolean

    A boolean flag representing whether the kernel is in development mode.

    A boolean flag representing whether the kernel is in development mode. The default is true if the environment begins with "dev", case insensitve.

    Definition Classes
    ScalatraKernel
  55. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  56. def log(arg0: String, arg1: Throwable): Unit

    Definition Classes
    GenericServlet
  57. def log(arg0: String): Unit

    Definition Classes
    GenericServlet
  58. def methodNotAllowed(f: (Set[HttpMethod]) ⇒ Any): Unit

    Defines a block to run if matching routes are found only for other methods.

    Defines a block to run if matching routes are found only for other methods. The set of matching methods is passed to the block.

    Definition Classes
    ScalatraKernelCoreDsl
  59. def multiParams: MultiParams

    The current multiparams.

    The current multiparams. Multiparams are a result of merging the standard request params (query string or post params) with the route parameters extracted from the route matchers of the current route. The default value for an unknown param is the empty sequence. Invalid outside handle.

    Definition Classes
    ScalatraKernelCoreDsl
  60. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  61. def notFound(fun: ⇒ Any): Unit

    Defines a block to run if no matching routes are found, or if all matching routes pass.

    Defines a block to run if no matching routes are found, or if all matching routes pass.

    Definition Classes
    ScalatraKernelCoreDsl
  62. final def notify(): Unit

    Definition Classes
    AnyRef
  63. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  64. def options(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

  65. def params: MultiMapHeadView[String, String] with MapWithIndifferentAccess[String]

    A view of multiParams.

    A view of multiParams. Returns the head element for any known param, and is undefined for any unknown param. Invalid outside handle.

    Definition Classes
    ScalatraKernelCoreDsl
  66. def pass(): Nothing

    Immediately exits from the current route.

    Immediately exits from the current route.

    Definition Classes
    ScalatraKernelCoreDsl
  67. def patch(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

  68. implicit def pathPatternParser2RouteMatcher(pattern: PathPattern): RouteMatcher

    Path pattern is decoupled from requests.

    Path pattern is decoupled from requests. This adapts the PathPattern to a RouteMatcher by supplying the request path.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  69. def post(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

    Definition Classes
    ScalatraKernelCoreDsl
    See also

    get

  70. def put(routeMatchers: RouteMatcher*)(action: ⇒ Any): Route

    Definition Classes
    ScalatraKernelCoreDsl
    See also

    get

  71. def redirect(uri: String): Unit

    Sends a redirect response and immediately halts the current action.

    Sends a redirect response and immediately halts the current action.

    Definition Classes
    CoreDsl
  72. implicit def regex2RouteMatcher(regex: Regex): RouteMatcher

    Converts a regular expression to a route matcher.

    Converts a regular expression to a route matcher.

    regex

    the regular expression

    returns

    a route matcher based on regex

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    org.scalatra.RegexRouteMatcher

  73. def removeRoute(method: String, route: Route): Unit

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  74. def removeRoute(method: HttpMethod, route: Route): Unit

    Removes _all_ the actions of a given route for a given HTTP method.

    Removes _all_ the actions of a given route for a given HTTP method. If addRoute is overridden then this should probably be overriden too.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    org.scalatra.ScalatraKernel#addRoute

  75. def renderPipeline: RenderPipeline

    The render pipeline is a partial function of Any => Any.

    The render pipeline is a partial function of Any => Any. It is called recursively until it returns (). () indicates that the response has been rendered.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  76. def renderResponse(actionResult: Any): Unit

    Renders the action result to the response.

    Renders the action result to the response. $ - If the content type is still null, call the contentTypeInferrer. $ - Call the render pipeline on the result.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  77. def renderResponseBody(actionResult: Any): Unit

    Renders the action result to the response body via the render pipeline.

    Renders the action result to the response body via the render pipeline.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
    See also

    #renderPipeline

  78. implicit def request: HttpServletRequest

    The currently scoped request.

    The currently scoped request. Invalid outside handle.

    Definition Classes
    ScalatraKernelCoreDsl
  79. def requestPath: String

    Defines the request path to be matched by routers.

    Defines the request path to be matched by routers. The default definition is optimized for path mapped servlets (i.e., servlet mapping ends in /*). The route should match everything matched by the /*. In the event that the request URI equals the servlet path with no trailing slash (e.g., mapping = /admin/*, request URI = '/admin'), a '/' is returned.

    All other servlet mappings likely want to return request.getServletPath. Custom implementations are allowed for unusual cases.

    Definition Classes
    ScalatraServletScalatraKernel
  80. implicit def requestWrapper(r: HttpServletRequest): RichRequest

    Definition Classes
    ServletApiImplicits
  81. def resourceNotFound(): Any

    Called by default notFound if no routes matched and no static resource could be found.

    Called by default notFound if no routes matched and no static resource could be found.

    Attributes
    protected
  82. implicit def response: HttpServletResponse

    The currently scoped response.

    The currently scoped response. Invalid outside handle.

    Definition Classes
    ScalatraKernelCoreDsl
  83. def routeBasePath: String

    The base path for URL generation

    The base path for URL generation

    Attributes
    protected
    Definition Classes
    ScalatraServletScalatraKernel
  84. lazy val routes: RouteRegistry

    The routes registered in this kernel.

    The routes registered in this kernel.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  85. def runFilters(filters: Traversable[Route]): Unit

    Invokes each filters with invoke.

    Invokes each filters with invoke. The results of the filters are discarded.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  86. def runRoutes(routes: Traversable[Route]): Stream[Any]

    Lazily invokes routes with invoke.

    Lazily invokes routes with invoke. The results of the routes are returned as a stream.

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  87. def serveStaticResource(): Option[Any]

    Attempts to find a static resource matching the request path.

    Attempts to find a static resource matching the request path. Override to return None to stop this.

    Attributes
    protected
  88. def service(request: HttpServletRequest, response: HttpServletResponse): Unit

    Definition Classes
    ScalatraServlet → HttpServlet
  89. def service(arg0: ServletRequest, arg1: ServletResponse): Unit

    Definition Classes
    HttpServlet → GenericServlet → Servlet
    Annotations
    @throws() @throws()
  90. def servletContext: ServletContext

    The servlet context in which this kernel runs.

    The servlet context in which this kernel runs.

    Definition Classes
    ScalatraServletScalatraKernelCoreDsl
  91. implicit def servletContextWrapper(sc: ServletContext): RichServletContext

    Definition Classes
    ServletApiImplicits
  92. implicit def session: HttpSession

    The current HTTP session.

    The current HTTP session. Creates a session if none exists.

    Definition Classes
    CoreDsl
  93. def sessionOption: Option[HttpSession]

    The current HTTP session.

    The current HTTP session. If none exists, None is returned.

    Definition Classes
    CoreDsl
  94. implicit def sessionWrapper(s: HttpSession): RichSession

    Definition Classes
    ServletApiImplicits
  95. def status(code: Int): Unit

    Sets the status code of the current response.

    Sets the status code of the current response.

    Definition Classes
    CoreDsl
  96. implicit def string2RouteMatcher(path: String): RouteMatcher

    Pluggable way to convert a path expression to a route matcher.

    Pluggable way to convert a path expression to a route matcher. The default implementation is compatible with Sinatra's route syntax.

    path

    a path expression

    returns

    a route matcher based on path

    Attributes
    protected
    Definition Classes
    ScalatraKernel
  97. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  98. def toString(): String

    Definition Classes
    AnyRef → Any
  99. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  100. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  101. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  102. def withRouteMultiParams[S](matchedRoute: Option[MatchedRoute])(thunk: ⇒ S): S

    Attributes
    protected
    Definition Classes
    ScalatraKernel

Deprecated Value Members

  1. def addRoute(verb: String, routeMatchers: Iterable[RouteMatcher], action: ⇒ Any): Route

    Attributes
    protected[org.scalatra]
    Definition Classes
    ScalatraKernel
    Annotations
    @deprecated
    Deprecated

    Use addRoute(HttpMethod, Iterable[RouteMatcher], =>Any)

  2. final def afterAll(block: ⇒ Any): Unit

    Definition Classes
    CoreDsl
    Annotations
    @deprecated
    Deprecated

    Use after() { ... }

  3. final def afterSome(routeMatchers: RouteMatcher*)(block: ⇒ Any): Unit

    Definition Classes
    CoreDsl
    Annotations
    @deprecated
    Deprecated

    Use after(RouteMatcher*) { ... }

  4. final def beforeAll(block: ⇒ Any): Unit

    Definition Classes
    CoreDsl
    Annotations
    @deprecated
    Deprecated

    Use before() { ... }

  5. final def beforeSome(routeMatchers: RouteMatcher*)(block: ⇒ Any): Unit

    Definition Classes
    CoreDsl
    Annotations
    @deprecated
    Deprecated

    Use before(RouteMatcher*) { ... }

Inherited from ScalatraKernel

Inherited from ServletApiImplicits

Inherited from Initializable

Inherited from CoreDsl

Inherited from Handler

Inherited from HttpServlet

Inherited from GenericServlet

Inherited from Serializable

Inherited from ServletConfig

Inherited from Servlet

Inherited from AnyRef

Inherited from Any

Ungrouped