6月2日(火)1,2コマ目(A班)、3,4コマ目(B班)
今日、やったこと
セッション
今日のホワイトボード
HTTPはステートレスなプロトコル
リクエスト・レスポンスの1セットで完結するのがHTTP。
複数のリクエスト・レスポンスに渡ってデータを共有する仕組みはない。
そのため、1ページで商品選択、2ページ目でお客様情報入力、3ページ目で配送先入力しても、サーバー側ではクライアント別にこれらの情報をまとめて扱う仕組みがない。よって、別の人が選んだ商品が届いたりすることなる。
セッションオブジェクトとは
アプリケーションサーバーで、リクエストをまたいで情報を共有できる仕組みを用意したのがSessionオブジェクト。
実体はサーバー側のメモリ(DBに保存するケースもあり)で、1クライアントに1Sessionオブジェクトが用意される。
Sessionオブジェクトにデータ保存やデータ取り出しをする際は名前を指定して行う。
今日の演習
簡単なサイト「パンケーキ注文サイト」を作りました。
Sessionオブジェクトというより、CheckBoxListコントロールや、RadioButtonListコントロールの使い方のほうがメインだったような気がします。
1ページ目(WebForm1.aspx.cs)
Sessionオブジェクトにデータをセットするくらい。
RadioButtonListコントロールは1つしか選択できないため、選択値の取得はSelectedValueプロパティ参照でOK。
2ページ目(WebForm2.aspx.cs)
CheckBoxListコントロールの使い方がポイントか。
〇選択値取得
複数選択可能なため、
選択項目を1つずつ取得し、
選択されているかチェック
を選択項目数繰り返す。
〇選択値を格納
配列のようなListクラスを使う。
宣言時に
List<string>
としている。<>内は要素の型。これだとstringのみ格納可能なListになる。
なお、3,4ページも同じ。
5ページ目(WebForm5.aspx.cs)
〇Sessionオブジェクトからデータ取り出し、格納
Sessionオブジェクトからデータを取り出すとき格納先に合わせてキャストが必要。
コメント