一部の実装では、jcr からデータを取得するための中間ストア/データ アクセス レイヤーとして機能する Java Bean クラスを使用する jsp を見てきました。
jsp は jcr api を介して jcr に直接アクセスできるため、これはなぜですか。
関心事の分離?データのメモリキャッシュ?
そもそも jcr api が作成されたときに、なぜそのようなパターンが存在するのか疑問に思っています。
スクリプトレットの使用は、小規模なインストールではそれほど問題にならないかもしれませんが、大規模なマルチ サイト プロジェクトでは問題になります。
UI コードとモデル/ビジネス ロジックを分離することで、保守が容易になり、プロジェクトでのコードの再利用が可能になります。また、レイアウトの変更もはるかに簡単になります。通常、この分離は、コンポーネント Bean を使用して JCR リポジトリにアクセスし、データを提供し、ビューのためだけに JSP を使用することによって行われます。
顧客がおそらく複数のサイトで大規模な UI の変更を必要としていると想像してみてください。スクリプトレットや UI コードと混同された JSP を変更するのは、特にそれらが多数ある場合は困難です。
OO の観点からすると、JSP とスクリプトレットを使用すると、継承と構成を使用できなくなります。スクリプトレットは抽象化できません。特に例外が発生した場合、Java Bean はスクリプトレットよりもデバッグが容易であり、Java Bean は単体テストが容易であることを経験しました。