問題タブ [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.
java - Spring Controller、新しい HttpRequest に基づいてループから抜け出す方法は?
私はSpring @Controllerを持っています。コントローラ内には、特定のリクエストが while ループに入った後に新しいデータをチェックし、データが見つかった場合にのみ中断するメソッドがあります。
特定のユーザー アクションの後、データが見つからなくても、特定のケースではループから抜け出す必要があります。したがって、前の while ループから抜け出すには、新しい HttpRequest が必要です。
また、これはユーザーごとにする必要があるため、あるユーザーは別のユーザーのアクションと対話できません。
コントローラーはシングルトンであるため、すべてのセッションで共通のプロパティを持ちます。これは、状態をグローバル プロパティに保存してから、ループ内で変更をチェックして中断できるようにすることはできないことを意味します。これは、セッションごとのプロパティではないためです。
コントローラーにセッションスコープを持たせる以外にそれを行う方法はありますか? (それが機能するかどうかさえわかりません)。
事前に感謝します。ヒントをいただければ幸いです。
nhibernate - デスクトップアプリケーションでCastleActiveRecordSessionScopeを実行する正しい方法は何ですか?
CastleActiveRecordを使用するデスクトップアプリケーション
私はSessionScopeを開き、アプリケーションの存続期間中存続します。これはアプリケーションの最後に破棄します。
「何か」を行う必要がある場合、およびトランザクション操作が必要な場合は、必要に応じてネストされたトランザクションを作成します。トランザクションが正しく終了した後、セッションをフラッシュし、SessionScopeを存続させます。
このアプローチは正しいですか?または、blプロセスの開始時にSessionScopeを開き、終了時に閉じる必要がありますか?はいの場合、なぜですか?
私はLazyLoadを使用しており、プロセスは必要に応じて別のプロセスを呼び出すことができ、同時に1つのプロセスを単独で実行できます。
-更新-正しいアプローチは、フォームレベルでセッションスコープを開くことですが、arセッションスコープはスタック方式で作成されるため、同じレベルに複数のセッションスコープを含めることはできません。別のセッションスコープにのみセッションスコープを含めることができます。誰かがこの問題を解決する方法を知っていますか?
jsf - デフォルトで呼び出されるセッションスコープマネージドBeanのresetProperty()?
プロパティを持つセッション スコープのマネージド Bean がありますcurrent
。方法があれば
Bean では、アプリケーションの新しいページに移動するたびに自動的に呼び出されます。これは正常な動作ですか?コード内のどこでもメソッドを呼び出していません。
セッション Bean のプロパティをリセットするこのアプローチが、控えめに言っても理想的ではないことを考えると、それを達成するための正しい方法はどれでしょうか?
ありがとうございました。
asynchronous - EJB @Asynchronous 呼び出しからの CDI SessionScoped Bean へのアクセス
計算に時間がかかるプロセスがあるため@Asynchronous
、ステートレス EJB としてマークされています。SessionScoped
プロセスが終了したら、プロセスを開始したセッションから Beanにアクセスして結果を保存したいと思います。
それは可能ですか?どのように?
sql-server - NHibernate WinForms Multiple(SessionScope)SleepingSessionsのパフォーマンス
Castle AR(SessionScope)を使用してNHibernate Session per Formアプローチを実装しました。フォームを開くと、(SessionScope)セッションを開き、フォームを閉じるときに破棄します。N個の単一フォームを開いた場合、フォームが開いている限り、N個のdbが眠いセッションを開いています。質問は次のとおりです。眠いセッションはパフォーマンスの問題を意味しますか?Nがdbで眠いセッションを開いたのは間違っていますか?
jsf-2 - @PostConstructは、JSF2 / CDIで更新される他のSessionScopedBeanの前に呼び出されましたか?
アプリで奇妙な動作をします。SessionScopeBean(Bean A)を使用してユーザー設定を保持します。RequestScopeにある他のBean(Bean B)で、SessionScopeBeanを注入します。
Bean Bには、BeanAの値に応じてデータベースから値のリストを取得する@PostConstructメソッドがあります。ユーザーがBeanAの値を変更し、その時点でBean Bの値が正しくない場合、アプリケーションは混乱します。 PostConstructメソッドが呼び出されます。ログでテストしました。
すべてのセッターメソッドは、アプリケーションフェーズの呼び出しの前に更新されると思いますか?
コードサンプルは次のとおりです。
Bean A:
Bean B:
サンプルログ:
ご覧のとおり...最初の2つのログは正しいです...ユーザーが設定を変更した場合(SessionBeanを更新した場合)、ビューはJSFで再レンダリングされ、最後の2つのログは正しい順序ではなく、アプリが混乱します。
助けてくれてありがとう。
jsf - ViewScoped managedBean と組み合わせた JSF SessionScoped managedBean
私のプロジェクトには次の問題があります。
次の構成を持つ 2 つのマネージド Bean があります。
これはすべてのコードではありませんが、状況の一般的なアイデアを示しています。
- セッションオブジェクトを保持する SessionScoped Bean
- ビュー関連のオブジェクトと SessionScoped Bean への参照を保持する ViewScoped Bean
問題は次のとおりです。
- ビューにアクセスします
- 私は同じビューにいくつかのポストバックを行い、毎回ビューに戻ってきます..これまでのところとても良い
- ある時点で、ビューからの情報を使用して SessionScoped Bean にセッションオブジェクトを設定し、ビューを離れます...これまでのところとても良いです
- ここで、このビューに戻ると、彼は新しい ViewScoped Bean インスタンスを作成し (予想どおり)、SessionScoped Bean を元に戻します (ManagedProperty アノテーションのため)。
- これをデバッグすると、SessionScoped Bean への参照が同じままであるため、同じオブジェクトであることがわかります。
- ただし、以前に SessionScoped Bean に設定したオブジェクトは になりました。これ
null
は、そのオブジェクトに関するセッション情報を「失った」ことを意味します。 - SessionScoped Bean でこのオブジェクトをリセットしたことはないので、どこで問題が発生したのかわかりません...
さらに説明が必要な場合、またはこの質問をより適切に表現したい場合は、お知らせいただくか、編集ボタンを使用してください。
java - セッションスコープの変数に現在のユーザーデータをキャッシュする
ユーザーセッション全体で現在のユーザーインスタンスをキャッシュして、ユーザーアクセスサービスにアクセスし、データベースからユーザーデータを何度も取得しなくても、サービスが自由にアクセスできるようにするにはどうすればよいですか。
Springがスコープ付きBeanの概念(セッションごと、リクエストごとなど)をサポートしていることは知っていますが、正直言って、実際に使用したことはないので、誰かが道を教えてくれたらとてもありがたいです。
この種のセッションスコープがスレッドセーフであることを強く期待しています。
jsf-2 - 別のアプリケーションでセッション スコープのマネージド Bean を削除する
検証などのビジネス ロジックを実行するマネージド セッション スコープ Bean を持つ JSF 2.0 アプリケーション (App#1) があります。[続行] ボタンをクリックすると、別のプレーンな HTML フォーム ページがユーザーに表示され、[送信] ボタンをクリックします。このページはフォームを別のアプリケーション (App#2) に送信します。App#2 がジョブを実行した後、ユーザーには App#3 のページが表示されます。これはすべて同じブラウザ タブで行われることに注意してください。
App#3 (これも JSF 2.0 アプリケーションです) で、 App#1 のセッション スコープ Bean を削除したいと思います。それ、どうやったら出来るの?以下のオプションを試しましたが、どれもうまくいかないようです。
上記のコード行で null を取得しています
ここもヌル。
java - 複数のスコープを持つマネージド Bean
専門家の皆さんに簡単な質問があります
同じ Bean に対して Session-Scoped と Request-Scoped の両方を持つことは可能ですか?
たとえば、私は BeanmyBean
を持っSession-Scoped
ていRequest-Scoped
ます。
編集
いくつかの試行を行った後、セッション スコープである最初のセッションを破棄することにしました。
リクエストスコープのものに再初期化する方法はありますか?