LoginSignup
3
4

More than 5 years have passed since last update.

KotlinとSparkでWebアプリケーション②(パラメーターを受け取る編

Posted at

検証環境

この記事の内容は、以下の環境で検証しました。

  • 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

スクリーンショット 2017-09-29 17.00.19.png

まとめと次回の予定

パラメータの取得方法はいたって簡単!

この時点では日本語に対応出来てないので、次回は、文字コードの設定を行う!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4