なぜHttpServletはSerializableを実装しているのですか?
2023-08-08 04:29:41
疑問点
私の理解では、Servletはコンテナによってインスタンス化され、その
init()
メソッドが一度呼び出され、JVMがシャットダウンするまでサーブレットはシングルトンのように動作します。
サーブレットは、アプリサーバーが回復したとき、または通常起動したときに新しく構築されるので、シリアライズされることを期待していません。サーブレットはセッション固有のメンバーを保持しないので、ディスクに書き込まれ、再インスタンスされることは意味がありません。 これに対する実用的な使用法はありますか?
私の懸念は、そこにいくつかの非シリアライズ可能なフィールドを置き、そして私のアプリが、異なる種類のセッションの複製が行われる本番環境で不思議なことに失敗することです。
どのように解決するのですか?
技術的には、サーブレット コンテナは、EJB セッション ビーンと同様の方法で、サーブレット オブジェクトをディスクに "passivate" することが許可されていると考えています。したがって、シリアライズ不可能なフィールドが原因でアプリが失敗するかどうかを質問するのは正しいことです。
実際には、私はコンテナがこれを行うことを聞いたことがないので、これは本当に初期のJ2EEの悪い時代のレガシーな荷物です。私はそれを心配することはありません。
関連
-
無効な文字定数
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
javaの非静的メソッドを静的に参照することができない
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Junitのユニットテストエラー
-
eclipse にリソースリーク:'in' が閉じない
-
java 365*1000*60*60*24 計算問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。