2017-10-22 2 views
0

は最近、私はこの質問モデル対セッション - データを格納するためのJavaアプリケーションにはどちらを使用しますか?

どのようにあなたが保有またはアプリケーション内のデータを渡すために、モデルやセッションを使用するかどうかを決定するに頼まれたインタビューに参加しましたか?

私は完全にゼロで私の理解としてこの質問に答えることができませんでした。 後で私は多くを検索し、@Modelattributeと@Sessionattributeの使用とその使用法を示した記事をいくつか見つけました。 しかし、私は基本的にモデルとセッションの使い方を選択する方法を知りたいですか?セッションでの保存とモデ​​ルでの追加の違いは何ですか? セッションの設定とモデルの設定との間に関連はありますか?

答えて

0

したがって、モデルビューコントローラでは、コントローラ内にのモデル属性が格納されます。ビュー層(JSPやその他のビューレンダリング技術)でこれらの属性を取得できます。しかし、これらのアトリビュートは通常、HTTPリクエストの期間だけ有効です。ビューがレンダリングされてユーザーに提示された後、これらのモデル属性はもう存在しません。

一方、セッションの属性は、ユーザーのセッションの間存続します。

だから、例を挙げて、あなたの質問に答えるために...

たちはウェブサイト上で販売のためのアイテムを表示するための責任があったのコントローラを持っていたとします。ユーザーがページを要求

、コントローラになります。

  1. 照会データベースと

  2. ユーザーの条件に一致する項目のすべてがモデルに項目を追加し、返す見つけますビュー

  3. ビュー内(JSP)で、モデルを取得し、HTML/CSSと共にモデル属性を表示して、ユーザーに表示されるページをレンダリングすることができます。

一方、ユーザーのセッションの生涯を通じて情報を提示する必要がある場合はどうなりますか?ショッピングカート内のすべての商品の合計費用と同じですか?これをセッション属性として保存して、すべてのHTTPリクエストにアクセスできるようにする必要があります。

+0

ありがとうございます@Solace ....この質問が私になぜ尋ねられたのか理解してくれました。しかし、私は1つの疑いがあります。答えを探しているうちに、私は「セッションを使用しないでください」または「間違っているとセッションを使用する」と言及された多くの記事に出くわしました。それはなぜ私は理解していないと言われている.....また、セッションを介してデータを保持するためにモデルを操作できる方法はありますか?出来ますか? – New2Java

+0

セッション属性に本質的に何か問題があるとは思わない。明らかに何らかの要求スコープが必要な場合は、それをモデルに追加します。私はセッション中にモデルの属性を保持する方法はないと思っていますが、フラッシュ属性のリダイレクト後にそれらを保持することができます – Solace

+1

あなたの助けをたくさんありがとうございます。 – New2Java

関連する問題