2

現在取り組んでいるプロジェクトでは、フロント コントローラー パターンを使用することにしました。私は常に、フロント コントローラーが (最終的には) Web アプリで発生するすべての処理を担当する必要があるという印象を受けてきました。リスナーはこのパターンに違反しますか?

public class MyDatabase implements ServletContextListener {
    public void contextInitialized(ServletContextEvent event) {
        ...
        String driver = context.getInitParameter("driver");
    }
}

もちろん、これは次のものよりもはるかに単純に見えます。

public class FrontController extends HttpServlet {
    public void service (....) {
        MyDatabase db = new MyDatabase(context.getInitParameter("driver"));
    }
}

これは非常に単純化された例です。実際にはもっと多くのパラメータがあります。では、どのスニペットがフロント コントローラー パターンにより忠実であると考えられるでしょうFrontControllerか? 下から構成を渡すか、または構成を直接クラスに提供しますか?

私はJavaが初めてなので、フレームワークを使用せずにサーブレットを学習しようとしています(当面)。

4

1 に答える 1

1

フロント コントローラーの主な目的は、リクエストを処理するための集中化されたエントリ ポイントを提供することです。

個々のページがナビゲーションを担当するよりも、フロント コントローラーから一連の関連ページ (たとえば、オンライン購入で複数のページが使用される場合があります) にわたるナビゲーションを制御するため

ServletContextListenerフロント コントローラー パターンからリソースの初期化の責任を分離することは良いことです。ServletContext ライフサイクルに関する通知イベントを受け取る責任があるため、適切な場所を選択してください。クラス内のコードServletContextListenerは、Web アプリケーションの開始前に実行されます。

于 2014-01-02T13:13:50.690 に答える