GAEをSBTで使う記事を書きましたが、今回はリクエストの処理にUnfilteredを使ってみることにしました。
Unfilteredとは
Unfilteredとは、いろんなフレームワークや環境に使えるリクエスト処理するライブラリらしい。Servletにも対応しているので、GAEでも使えるようです。
Servletに対応しているパッケージは、unfiltered-filterのようなので、これを使ってみましょう。
build.sbtの設定
build.sbtに次の記述を追加すれば、Unfilteredを使えるようになります。
1 |
フィルターの作成
リクエストを処理するフィルターを作成してweb.xmlに登録します。
Unfilteredでは、Planというトレイトを継承してフィルターを作るようです。
src/main/scala/mypackage/Filter.scalaを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 | import unfiltered.request._ import unfiltered.response._ class Filter extends unfiltered.filter.Plan { def intent = { case Path(Seg( x :: Nil )) => ResponseString( x ) } } } |
intentというメソッドでリクエストを処理します。caseでパス名を取得して、パス名をそのままページに表示するようにしました。
詳しい使い方は、こちらを参照してください。
web.xmlの設定
作ったフィルターをweb.xmlに登録します。
1 2 3 4 5 6 7 8 9 10 | <filter> <filter-name>filter</filter-name> <filter-class>mypackage.Filter</filter-class> </filter> <filter-mapping> <filter-name>filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> |
とりあえず、全てのリクエストはこのフィルターを通すように設定しました。
コンパイル
SBTのインタープリタに入り、packageと入力します。
> sbt
sbt> package
sbt> package
サーバの起動
appengine-java-sdk-***/bin/dev_appserver.cmd sbt/target/webapp
ブラウザでhttp://localhost:8080/hogeに行って、動作を確認してみましょう。ブラウザにhogeと表示されていれば成功です。
関連記事
0 件のコメント:
コメントを投稿