2

サーバー側のDartは、PHPのようにセッションをサポートしていますか?

<?php

session_start();

$_SESSION['fruit'] = 'apple';

データはページの読み込み時に保持されます。

4

1 に答える 1

5

はいDartは、PHPとほぼ同じようなセッションをサポートしています。

リンゴとバナナの間で果物をランダム化し、セッションへの選択を保存する簡単なプログラムを書いてみましょう。

import 'dart:io';
import 'dart:math';

// A method that returns "apple" or "banana" randomly.
String getRandomFruit() => new Random().nextBool() ? 'apple' : 'banana';

main() {
  var server = new HttpServer();

  server.defaultRequestHandler = (HttpRequest req, HttpResponse res) {
    // Initialize session with an empty {} object as data.
    var session = req.session((s) => s.data = {});

    // Save fruit to session if there is nothing in there.
    if (session.data['fruit'] == null)
      session.data['fruit'] = getRandomFruit();

    // Retrieve fruit from the session.
    var fruit = session.data['fruit'];

    res.outputStream.writeString("Your fruit: $fruit", Encoding.UTF_8);
    res.outputStream.close();
  };

  server.listen('127.0.0.1', 80);
}

これで、コードを実行してに移動するとhttp://localhost、セッションが開いている限り、同じフルーツが表示されるたびに、フルーツがセッションに保存されるためです。

ノート:

  • HttpRequestクラスには、インスタンスを初期化(または返す)するこのメソッドがsession()ありHttpSessionます。
  • HttpSessionは、というプロパティdataがありますが、最初に空になるように初期化することをお勧めします{}
于 2012-12-23T14:15:49.047 に答える