問題タブ [session-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
717 参照

linux - Spring aop scoped-proxyがLinuxインストールで機能しない

セッションスコープとして宣言されている Bean があります。他の Bean (デフォルトではシングルトン) で使用するには、構成で aop を有効にする必要がありました。

設定

WindowsデスクトップコンピューターでEclipseから起動している間、宣言されているようにうまく機能します。しかし、テスト用の Linux 環境で公開すると、どういうわけか aop が無視され、エラーがスローされます。

Linux 環境での例外

ログ ファイルに追加のエラーはありません。Web アプリのログにも、catalina.out にもありません。Tomcat 7.0.42および「CentOSリリース6.5」でSpring 3.2.4を使用しています。

0 投票する
1 に答える
473 参照

jsf - SessionScoped を ViewScoped に変更しますか?

私はjsf、Bean、およびすべてに不慣れですが、完成したプロジェクトでセッションスコープのBeanをビュースコープに変更する必要があります。

どこから始めればよいですか?どうやら「SessionScoped」を「ViewScoped」に変更しても機能しません:)。

0 投票する
1 に答える
181 参照

glassfish - @ApplicationScoped を使用していますが、2 つのインスタンスが見つかりました

使用されているユーザーのリストがあり、マネージド Bean は @ApplicationScoped で示されています。問題は、リストをチェックすると、何か奇妙なものを発見したことです。:: localhost:8080/myAPP と 127.0.0.1:8080/myAPP の両方のアドレスでアクセスした場合に違いがあります

0 投票する
0 に答える
83 参照

jsf-2.2 - 同じマシン上の複数のブラウザからのログインを防止する

私はそれに関して他の人から尋ねられた質問を調べました。しかし、それでも答えが得られませんでした。ユーザーが同じマシンで複数のブラウザを使用してログインできないようにしたい 1 つの方法は、データベースの別のフィールドを使用して、ユーザーがまだログインしているかどうかを確認することですが、これはユーザーが意図的にログアウトした場合にのみ役立ちます。しかし、ブラウザが閉じられた場合、どうすれば動作させることができますか?? セッションを維持するためにJSFセッションスコープBeanを使用しています。または、セッションが JSF で無効になる直前に何らかのメソッドを呼び出す方法があるかどうか教えてください?? ありがとうございました!

0 投票する
1 に答える
1021 参照

jsf-2 - Bean に sessionscoped を追加すると、Primefaces ピックリストが空に見える

Primefaces Picklistbean にスコープが定義されていない場合、primefaces picklist のソース リストとターゲット リストはいっぱいですが、sessionscoped を Picklistbean に追加すると、ソース リストとターゲット リストは空になります。セッションスコープを Picklistbean に追加すると空に見える理由を知りたい

xhtml

0 投票する
2 に答える
5042 参照

jsf - JSF: セッション スコープのマネージド Bean の属性が null になる

私は JavaEE 7 で遊んでいて、単純なログイン メカニズムで webapp を作成しようとしました。

Userユーザーに関するデータを保持するという JPA で永続化される EJB エンティティ クラスがあります。WAR では、呼び出されたセッション スコープのマネージド BeanUserManagedBeanが現在のユーザーの追跡を担当するため、User誰かが正常にログインしたときに設定されるタイプのプロパティがあります。フィルタはこのプロパティの値を監視しており、必要に応じてログイン ページにリダイレクトします。もちろん、 と の両方UserUserManagedBeanシリアライズ可能です (インターフェイスを実装し、シリアライズ不可能なものは含まれません)。

私の問題は、ログインが成功した後、ページを更新するとログインページに戻り、以前に設定しuserたプロパティが null になっていることです (実際、これがフィルターがリダイレクトをトリガーする理由です)。

これが私が試したものです:

  • 分離されたロジックとデータ: UserManagedBean には、この 1 つのプロパティといくつかのヘルパー メソッドしかありません。EJB はなく、Java マジックに関連するものは何もありません。
  • javax.faces.STATE_SAVING_METHODweb.xml のコンテキスト パラメータをサーバーとクライアントの両方に設定しようとしましたが、何も変わりませんでした。
  • セッション スコープのマネージド Bean が同じままであることを確認しました。そのうちの 1 つだけが作成されますが、ログイン ページから移動した後、何らかの理由で user の値が null になります。
  • NetBeans デバッガによると、userフィールドは、ログインしているユーザーに設定する以外はアクセスされません。
  • カスタムのシリアル化メソッドを指定すると、実験中に UserManagedBean がシリアル化または逆シリアル化されないことが明らかになりました。
  • userChrome でのデバッグは、セッション ID が Cookie に保存され、値が失われたときに変更されないことを示唆しています。
  • 例外は検出されません。

何か些細なことを見逃しているに違いありません。

更新:それは確かに些細なことであり、 JSF やマネージド Bean とは関係ありません。以下の私の回答を参照してください。)

私のコードは次のとおりです。

Userクラス:

UserManagedBeanクラス:

フィルター ( doBeforeProcessing):

アップデート:

ユーザーが一度適切に設定されると、ウェルカム画面への移行が正常に行われることに注意することが重要です。ただし、nex 要求では、ユーザー プロパティが空であることがわかります。

認証をトリガーするコードは、リクエスト スコープLoginManagedBeanクラスにあります。

0 投票する
1 に答える
276 参照

java - SessionScoped が機能しない GAE+Jersey+Guice

Jersey (1.17) と Guice (3.0) を使用する Java プロジェクトがあります。SessionScoped Bean はローカル dev では機能しますが、GAE にデプロイすると機能しません。問題は、セッション状態を保持しないことです。

セッションは web.xml で有効になります。<sessions-enabled>true</sessions-enabled>

私のセッション Bean (SessionService) は次のとおりです。

そしてそれは ServletModule の Session スコープにバインドされていますbind(SessionService.class).in(ServletScopes.SESSION);

私が使用するコントローラーは次のとおりです。

ローカル開発サーバーでは正常に動作します。GAE (1.9.5) に展開すると、最初にロケールが設定され、setLocale を何度も呼び出しても永久に同じままになります。なぜ機能しないのですか?

奇妙なことに、私はそれを機能させるあいまいな方法を見つけましたが、なぜそれが機能するのかわかりません。実行するには、ロケールを設定する前に HttpSession に触れる必要があります。のようにrequest.getSession(true).setAttribute("whatever", "bar")。あたかも、SessionService が Session で何かをしたいことをサーバーが呼び戻す必要があるかのように。何故ですか?