サーバー側のDartは、PHPのようにセッションをサポートしていますか?
<?php
session_start();
$_SESSION['fruit'] = 'apple';
データはページの読み込み時に保持されます。
サーバー側のDartは、PHPのようにセッションをサポートしていますか?
<?php
session_start();
$_SESSION['fruit'] = 'apple';
データはページの読み込み時に保持されます。
はい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
がありますが、最初に空になるように初期化することをお勧めします{}
。