検証環境
この記事の内容は、以下の環境で検証しました。
- Intellij IDEA ULTIMATE 2017.2
- Kotlin 1.1.4-3
- Spark 2.6.0
- Gradle Projectで作成
目標
送られてきたパラメーターを受け取る
今回の流れ
- パラメーターを受け取る2つの方法
- 実装
- 実行
- まとめと次回の予定
パラメーターを受け取る2つの方法
パラメーターを受け取るには2つの方法がある。
パスパラメーターかクエリーパラメーターで受け取る。
パスパラメータはURLの一部をパラメーターとして取得する。
クエリーパラメーターはURLの末尾に付与した「?名前=値&名前=値」の「名前」を指定して取得する。
実装
ソースの全貌
SparkSample.kt
package jp.co.casareal.kotlin_spark
import spark.Spark.get
fun main(args: Array<String>) {
get("/hello") { request, response -> "Hello World!" }
get("/bye") { request, response -> "Bye!" }
get("/parameter/:name"){
request, response ->
val age = request.queryParams("age")
val name = request.params("name")
"query param={name:${name},age:${age}}"
}
}
パスパラメーター
設定方法
パスパラメータの設定はgetメソッドやpostメソッドの引数に設定するURLに記述する。
get("/parameter/:name"){・・・省略・・・}
「:パラメータ名」で設定する。
上記の設定では、「http://localhost:4567/parameter/taro」 でアクセスすると、「taro」が取得できる。
取得方法
パラメータを取得するには、HttpServletRequestオブジェクトのparams関数を呼び出す。
引数に設定したパラメータ名を指定する。
val name = request.params("name")
クエリーパラメーター
取得方法
「http://localhost:4567/parameter/taro?age=25」 でアクセスした場合、パラメータ名はageです。
取得するにはqueryParams関数でパラメータ名を指定して取得する。
val name = request.params("name")
実行
実行して下記にアクセスします。パラメータが表示されれば成功!
http://localhost:4567/parameter/taro?age=25
まとめと次回の予定
パラメータの取得方法はいたって簡単!
この時点では日本語に対応出来てないので、次回は、文字コードの設定を行う!