Day57 :) model1 vs. model2, Servlet


MVCモード


  • ソフトウェア設計モードは、モデル、ビュー、およびコントローラを意味する
  • モデル:内部論理処理
  • 、例えばデータベースと対話
  • ビュー:
  • 画面出力に関連
  • コントローラ:ユーザが入力と、入力内容を区別することによりモデル/ビュー
  • を更新する.

    Model 1



    JSPでの
  • ビューとコントローラの実装(リクエストと処理)
  • JSPページには、ビジネスロジックを扱うコードとHTMLコードが混在している
  • <p><strong><%=boardDao.userName %></strong>님 환영합니다.</p>
  • ユーザは、ビュー
  • に直接アクセスすることができる.

    モデル1の利点

  • は構造が簡単で、開発が容易で、開発速度が速い.
  • 中小規模向け

    モデル1の欠点

  • プロジェクトが大きいほど、メンテナンスが困難になる
  • 設計者と開発者との連携が困難になる
  • Model 2


  • MVCモードをWeb開発のアーキテクチャ(モデル2=mvcモード)
  • に導入する.
    servletは、JSPではなく
  • ユーザの要求を受信する
  • servletは、要求を受信してビューまたはモデル
  • に送信する.
  • ビューは表示部のみを担当し、モデルの実際の機能部は
  • のみを担当する.
  • ユーザーはビューに直接アクセスできません.コントローラを通過する必要があります.

    モデル2の利点

  • は、設計および論理のためのjavaコードを
  • に分けることができる.
  • 設計と開発者間の分業
  • コード簡潔、メンテナンスが容易、拡張が容易
  • モデル2の欠点

  • 構造複雑
  • コード分離、管理するファイル増加
  • Servlet

  • クライアント要求を処理し、結果を返すjavaクラス
  • モデル2はコントローラ
  • として使用する.
  • Webアプリケーションサーバはサーバのエンジンとコンテナとして、
  • HttpServlet

  • Http要求を処理するためのWebアプリケーションの親
  • 主な方法


    void init()

  • HttpServeretオブジェクト初期化
  • TomcatがHttpServeretオブジェクトを作成する場合はinit()メソッド
  • を実行します.
  • init()メソッドを再定義することにより、オブジェクトの作成後に実行する操作
  • を実現することができる.

    void destroy()

  • HttpServletオブジェクトの処置前に実行する方法
  • HttpServiceletは、コンピュータリソースを解放するためのコード
  • を含む.

    void service(HttpServletRequest request, HttpServletResponse response)


    この分析は、
  • HTTPリクエストが受信されるたびに実行され、リクエストの方法を決定します.
  • は、ユーザの要求
  • を処理するためにコードを直接記述することができる.

    void doGet(HttpServletRequest request, HttpServletResponse response)

  • GET HTTP要求を処理する方法;クエリーデータ
  • void doPost(HttpServletRequest request, HttpServletResponse response)

  • POST HTTP要求を処理する方法と、ユーザから送信データをサーバ上に記憶する
  • と、を含む.

    void doPut(HttpServletRequest request, HttpServletResponse response)

  • PUT HTTP要求を処理する方法;サーバ上の既存データ
  • を修正する.

    void doDelete(HttpServletRequest request, HttpServletResponse response)

  • DELETE HTTP要求の処理方法、サーバ上の既存データ
  • を削除する.

    サーブレットの利用

  • HttpServeretクラスを継承し、サービスメソッド
  • を再定義します.
  • HttpServletクラスを要求URL
  • にマッピングする.