私はサーブレットと JSP をいじっていましたが、少し混乱しています。
リクエストをJSPにディスパッチするサーブレット(コントローラー)を作成しました
サーブレットで setAttribute() メソッドを使用して、リクエスト オブジェクトにいくつかの属性を設定しました。
JSP 内のリクエスト オブジェクトのパラメータと属性に問題なくアクセスできます
。
ここで、 session.setAttribute("test", request)を使用して、リクエスト オブジェクトをセッション オブジェクトの属性として保存しました。2 番目の JSP を作成しました (最初の JSP からの
移動は、特定のボタンをクリックしたときに Javascript を介して行われます。window.location 関数を使用し
、2 番目の JSP のアドレスを値として指定します)。- 2 番目の JSP で、セッション オブジェクトから要求オブジェクトを取得すると、取得した要求オブジェクトの
すべての属性から null 値が取得されます。 - 取得したリクエスト オブジェクトのパラメータにアクセスできますが、
request.getParameter() メソッドを使用して最初の JSP でパラメータを少なくとも 1 回取得した場合にのみアクセスできます
。それ以外の場合は、2 番目の JSP で null を返します。
私はこのことに本当に慣れておらず、この動作について混乱しています。パラメータがそのまま残っているのに、リクエストオブジェクトの属性が「消去」されたのはなぜですか(最初のJSPでパラメータにアクセスした限り。IMOが意味をなさないため、さらに当惑します)
説明をいただければ幸いです。よろしくお願いします。