質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

2回答

3036閲覧

session の本質とは何なのでしょうか?

YOHEY-WADAMI

総合スコア8

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

0グッド

0クリップ

投稿2018/03/12 10:32

すみません、自分で調べても理解できたとは思えず質問致します。勉強不足だという指摘はどうか許して下さい。

sessionとは
・コンピュータネットワークでは、接続を確立(ログイン)してから切断(ログアウト)するまでの一連の通信のこと。HTTPのサイトでは、セッションにIDを振ることで同一のセッションを管理することができる。また、一連のインタラクティブな操作(例えばログインしてからログアウトするまで)を指す場合もある。

・サイトに訪問してから離脱(=セッションが切れる)するまでの一連の行動のこと。
・セッションを使うと、ユーザーが画面遷移してもユーザー特有の情報を失わないようにできる

上記内容で確認いたしました。
ざっくりとではありますが、例に例えると、何かの会員サイトへログイン後、そのサイト内でページを遷移しても、そのユーザーが会員だと分かるようにsessionという箱にそのユーザー特有の情報(今回だとIDやパスワードだと思われる)が保存されてサイトをログアウトなど離脱するようなことがない限りsessionを保持し続けるものと理解しました。

現在社内でstrutsの研修をしています。
<input type=”hidden” ………..value=”<bean:write ……….>”>
このようなコードでbeanの中の情報をhiddenで隠してサーブレットに値を渡し、次のjspで値を取り出す方法を取りました。

実際これで意図した動作にはなっているのですが、この場合はsessionを用いるべきとのお達しでした。
その際なぜsessionが有効なのか考え上記の内容で回答すると、それは使い方や概念であって本質ではないとのことでした。

この場合、私の理解が本質でないとすると何か他に考えられるものがあるのでしょうか。

すみません、正直申し上げて言葉遊び感が拭えないので質問するべきか悩んだのですが何か考えられるものはありますでしょうか。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

そもそも「Sessionの本質」でなく、「なぜSessionを使うのか」の話ですよね?

整理すると

beanの中の情報をhiddenで隠してサーブレットに値を渡し

という実装をしたところ

この場合はsessionを用いるべき

と、いわれ。

sessionという箱にそのユーザー特有の情報(今回だとIDやパスワードだと思われる)が保存されてサイトをログアウトなど離脱するようなことがない限りsessionを保持し続けるもの

と、回答したってこと?

なぜ、Sessionを用いるべきか?という質問に対しての回答が、
「ログアウトなど離脱するようなことがない限りsessionを保持し続けるもの」
であれば、もとの指摘をした方は

ユーザ情報はセッションに持つべきものなんでしょ
という表面的な理解しかしていないと判断をして、本質ではないと言ったのかもしれません

もとの指摘をした方は、HIDDENにパラメータを持って、クライアント側に表示させると
予期せぬタイミングでパラメータを書きかえられることがある。と指摘したかったのでは?

まぁ、実装しだいなので更新タイミングでチェックは出来るのですが。
そもそも、そんなことするくらいならセッションにしまって変更できなくするほうが良いですよね。

補足
「クライアント側に表示させる」だけでは、パラメータが書き換わることは、ありません。
今回のように受け取り側のサーブレットが処理するタイミングで値が更新されます(そのように実装していれば)
表示した値と受け取った値が異なる場合、エラーにするよりは、そもそも受け取らないようにしたほうが良いですよね。

投稿2018/03/13 02:09

編集2018/03/13 02:23
momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

有効期間が設定された入館証みたいなものです。入館証が有効な間はサーブレットは対応するデータを一時的に預かってくれます。

投稿2018/03/12 12:33

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問