アプレットの現在の UI 状態を維持するシングルトンがあります。問題は:
- ユーザーはブラウザでアプレット ページを開き、ドロップダウンで値を選択します。
- ユーザーは、純粋な HTML であるアプリケーションで別のページを閲覧します。
- ユーザーがアプレット ページに戻っても、UI の状態はそのままです。つまり、ドロップダウンで選択した値がそこにあります。このドロップ ダウンの状態は、アプレットの UI 状態を保存する Singleton から取得されます。
- ユーザーは再びアプリケーション内の純粋な HTML ページに移動します。
- ユーザーが再びアプレット ページに戻ると、今度は状態が失われ、デフォルト レイアウトにリセットされます (ドロップ ダウンにはデフォルト値が含まれます)。
私が見つけた理由は、ユーザーが 2 回目にアプレットに戻ったときに、UI 状態を保存するシングルトンがその状態を保持できないためです。すべての静的変数はデフォルト値にリセットされます。
このリンクのように、アプレットはステートレスである必要があることがわかりました。
それは言う:
クラス・ローダー・キャッシュによって取得されたメモリーが他の目的で必要とされない場合、アプレットに格納された値は呼び出し間で持続する可能性があります。しかし、その振る舞いに依存することはできません。一般に、アプレットはステートレスであるべきです。永続的なストレージが必要な場合は、ブラウザの Cookie を使用してください。
この場合、アプレット用のシングルトンを作成するにはどうすればよいでしょうか? UI の状態全体をブラウザーの Cookie に保存できません。