5月31日(火)1、2コマ目

今日、やったこと

セッションオブジェクト

今日のホワイトボード

セッションオブジェクトとは

WebアプリケーションはHTTPプロトコルで動く。HTTPはリクエスト、レスポンスの1往復で完結するプロトコルで、複数回に渡るリクエスト、レスポンスのデータを保持する仕組みはない。

図 HTTPはステートレスなプロトコル

このままではWebアプリケーションを構築できないので、複数回にわたるリクエスト、レスポンスでデータを共有できるセッションオブジェクトが用意されている。


Razorページでセッションオブジェクトを使うには

以下が必要。

  • Startup.csで設定
  • HttpContext.SessionのSetXX()メソッドでデータを保存
  • HttpContext.SessionのGetXX()メソッドでデータを取り出す


Startup.cs

以下のソースを参考に。


Index.cshtml.cs

SetXX()メソッドでデータを保存=>36行目

GetXX()メソッドでデータを取り出す=>20行目


Index.cshtml

これは特にいうことはなし。


セッションオブジェクトはクライアント毎に用意される

セッションオブジェクトはサーバー側でクライアント毎に用意される。

各クライアント毎のセッションオブジェクトにはユニークなセッションIDが付与される。

クライアント側にもこのセッションIDが保存され、リクエスト時に送信することで、サーバーはクライアントのセッションオブジェクトを識別している。

図 セッションオブジェクトはクライアント毎に用意される


セッションオブジェクトのキーとデータ

セッションオブジェクトにデータを保存する際、キーも一緒に指定することで、データとキーが紐づいた状態でセッションオブジェクトに保存される。

セッションオブジェクトからデータを取り出す際は、キーで指定する。

図 キーとデータ


練習問題(Razor_練習7)

ソースコードを載せておきます。


Startup.cs

さきほどのStartup.csと同じ。


Item.cs

商品データ受け渡しのためのクラス。


Index.cshtml.cs



Index.cshml


おまけ <textarea>タグ

複数行テキストを扱うことができる<textarea>タグがある。

図 <textarea>タグ


次回は

今日やったセッションオブジェクトにはbyte[]、int、string型のデータしか保存できない。

もっといろいろな型のデータを扱う方法をやります。



このブログの人気の投稿

6月7日(火)1、2コマ目

6月28日(火)1、2コマ目

6月14日(火)1、2コマ目