Java Web開発


最近ネット開発を勉強しています.以前Springbootを使って簡単なクローンコードをしていましたが、実装のみで基礎部分がよくわからないので、ついでにサーブレット、JSPなどを学びたいと思います.
実際、最近の傾向ではJSPは使用せず、サーブレットも直接使用しない.しかし、これも基礎部分であり、サーブレットはSpringFrameworkを理解するために必要な概念であるため、学ぶ必要がある.

🌏 Web Application Architecture


まず、最も基本的なWebアプリケーション構造について説明します.

クライアントがサーバにリクエストを送信すると、サーバはリクエストを処理して応答を送信します.
Webサーバは主にHTTP要求に応じて静的コンテンツを提供し、アプリケーションサーバは業務ロジック、データベースクエリーなどの動的コンテンツを提供する.
通常、NginxやApacheのようなWebサーバは、Apache TomcatなどのWebアプリケーションサーバとともに使用され、機能が分離され(Webサーバは静的ページのみを処理し、演算が必要な場合はWASに渡して実行し、結果を返す)、サーバ負荷を防止し、セキュリティを強化する.負荷バランスを理由に使い分ける.

🐱 Servlet


Javaには、サーブレットという名前のWebページを動的に生成するための技術があります.代表的なWAS Tomcatは、Javaサーブレットを実行するためのサーブレットコンテナを提供します.
サーブレットとWebアプリケーションサーバをさらに理解するために、HTTP通信中にサーバが処理する必要がある問題について考えてみましょう.

🔍 サーバが処理するトランザクション

  • サーバーはTCP/IPを待ち、スロットは
  • に接続する.
  • HTTP要求メッセージのパケット読み出し
  • を行う.
  • POST、URLを保存するか
  • コンテンツタイプ確認
  • HTTPメッセージ本体コンテンツパケット
  • 実行
  • 指定フロー
  • ビジネスロジックの実行
  • データベース要求格納
  • HTTP応答メッセージ
  • を生成する.
  • TCP/IPに応答して、スロット
  • を終了する.
    Javaでは、ビジネスロジックの実行に加えてサーブレットが自動的に実行されます.
    HTTPリクエスト、レスポンス情報は、HttpServeretRequest、HttpServeretResponseオブジェクトによって便利に使用できます.

    WASでは、リクエストメッセージに基づいてリクエスト・レスポンス・オブジェクトが作成され、これらのオブジェクトを受信してテンプレートが実行され、レスポンス・オブジェクト情報を用いてHTTPレスポンスが生成されクライアントに送信される.

    🔍 Servlet Class


    一般的なJavaクラスとは異なり、mainメソッドはなく、オブジェクトの作成からオブジェクトの実行(method call)までサーブレットContainerによって管理されています.
    サーブレットクラスは通常javaxです.servlet.HttpServletクラスを継承することにより、Servletインタフェースの抽象クラスを実現する.HttpServeret APIドキュメント
    ご希望のHTTPメソッドに応じて、doGet()、doPost()などのメソッドを上書きして、必要なコンテンツを実現できます.
    public class HelloWorldServlet extends HttpServlet {
        public doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            ...
        }
        
        public doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
        ...
    }

    🔍 Servlet Life Cycle


    サーブレットクラスは、サーブレットコンテナによってオブジェクトの作成や消滅などを管理します.
    サーバの作成と破棄には、次の手順があります.
  • ユーザURL要求に従って、サーブレットが実行される.
  • シーケンスプレートインスタンスが生成されない場合、インスタンスが生成される.(ジェネレータ呼び出し後、init()呼び出し)
  • オブジェクト
  • が作成されている場合は、要求ごとにスレッドを作成し、ブレードサーバのサービス()メソッド
  • を呼び出す.
  • サービスメソッドにより、doGet()、doPost()などのメソッドがユーザ要求に従って呼び出される.
  • サーブレットコンテナを終了するか、既存のサーブレットをクリーンアップする必要がある場合、destroy()メソッド
  • が呼び出される.
    サービス(&doGet、doPostなど)は複数回呼び出すことができます.オンデマンドコール
    他のinit()またはdestroy()は、最初のリクエスト時に1回のみ呼び出されます.

    📑 JSP


    HTML内にjavaコードを挿入し、Webサーバ上でWebページを動的に生成してWebブラウザに返す言語.実行時にJavaサーブレットに変換して実行します.
    サーブレットとは異なり、サーブレットは基本的にjavaクラスであり、JSPはHTMLベースであり、そこにJ javaコードを入れることができる.
    操作上、Webアプリケーションサーバではjspファイルがjava servletファイルに変換され、コンパイル後にservletクラスがメモリにロードされます.
    HTMLファイルにJavaを書き込むことができる利点があるが、react、vueなどのフロントエンドフレームワークの発展に伴い、フロントエンドとバックエンドが分離した後、Javaはあまり使われなくなった.

    🌱 Spring


    Javaプラットフォーム向けのオープンソースアプリケーションフレームワーク.
    Web開発を非常に便利にするフレームワーク(フレームワーク)といえます.
    Spring内部でもservletが使われています.
    详しい内容は后で书くことを学びましょう.

    の最後の部分


    本稿では,Web開発の構造とJavaを用いたWeb開発について簡単にまとめた.
    次の記事では、サーブレット、JSPなどで開発し、例を書きます.
    この文章は川を襲うとSSAFY講座、https://dinfree.com/lecture/backend/javaweb_1.1.htmlのウェブサイトなどを参考にして書かれています.