0

jspページからSpring MVCによって保存されたセッション変数の使用が説明されているスタックオーバーフローに関する別の回答を読みました。

私が知りたいのは、バックエンドにSpringを使用するWebアプリのHTMLフロントエンドのJavaScriptコードからそのようなセッション変数にアクセスできるかということです? はいの場合、JavaScript からセッション変数にアクセスするにはどうすればよいですか?

4

2 に答える 2

1

セッション変数を反復処理し、セッション属性を配列として設定するスクリプトを出力する必要があります。

たとえば、jspコードの場合:

次の行を追加します

<script>
var session= new Array();
<%
for (Enumeration e = session.getAttributeNames() ; e.hasMoreElements() ;) {
     Object obj= e.nextElement();
     %>session['<%=obj%>']='<%=(String)session.getAttribute(obj)%>';<%
   }
%>
</script>

これは、セッション属性が文字列であることを前提としています。

これで、ブラウザのJavaScriptでセッション属性にアクセスできます。

たとえばsession['key1'] 、サーバーのkey1に対応するSession属性の文字列表現を提供します。

于 2013-01-23T08:41:35.247 に答える
1

いいえ、直接ではありません。

セッション変数がサーバーのメモリーに存在し、JavaScript がクライアントのブラウザーで実行されることを考慮してください。これが明確になると、クライアント側の JavaScript でセッション変数に直接アクセスできない理由も明らかになります。

JavaScript コードでセッション変数を読み取る必要がある場合は、回避する方法があります。

  1. ページ上の JavaScript 変数として値をレンダリングできます。
  2. シンプルな AJAX サービス (REST/JSON) を作成して、ページが JavaScript で AJAX を使用してサーバーにリクエストを送信し、セッション変数の値を取得できるようにします。
于 2013-01-23T08:37:45.220 に答える