[Scala]
Scalatra
RubyのフレームワークsinatraをScalaで実装したもの。基本的なHTTPとルーティングがわかっていればWEBアプリが実装できる。
scalatraのデプロイ
最小構成によるサンプル
とりあえず動かしてみるにはこれがよいscalatra-sbt-prototype
- ソースからわかる特徴
- get("/") などに見られるHTTPのルーティング、簡単で改造しやすい
- 同様にして、post()、put()、delete()、なども実装可能
- 基本はJavaのServletの規格の上で動いているので、request、response、servletContextとか概念は同じ
- scalateとかいうHTMLテンプレート
- "<html>...</html>のような記述がそのまま書ける、よくあるHTMLテンプレート、さらばJSP(Javaプログラマー堂々退場す)
- 変数をテンプレート中に差し込む場合は、 { variable } と書く
- get("/") などに見られるHTTPのルーティング、簡単で改造しやすい
package com.example.app import org.scalatra._ import scalate.ScalateSupport class MyScalatraServlet extends ScalatraServlet with ScalateSupport { get("/") { <html> <body> <h1>Hello, world!</h1> Say <a href="hello-scalate">hello to Scalate</a>. </body> </html> } notFound { // Try to render a ScalateTemplate if no route matched findTemplate(requestPath) map { path => contentType = "text/html" layoutTemplate(path) } orElse serveStaticResource() getOrElse resourceNotFound() } }