今日、私たちは皆、創造する必要性を認識しています。 動的なWebページ 時間に応じてサイトのコンテンツを変更したり、クライアントからのリクエストに応じてコンテンツを生成したりできるものです。 Java でのコーディングが好きなら、Java を使用して動的 Web ページを生成する方法も存在することを知ってうれしいでしょう。 Java サーブレット 。ただし、トピックに進む前に、まずサーバー側拡張機能の必要性を理解しましょう。
Java サーブレットとは何ですか?
Java サーブレットは、Java 対応の Web サーバーまたはアプリケーション サーバー上で実行される Java プログラムです。これらは、Web サーバーから取得したリクエストの処理、リクエストの処理、応答の生成、Web サーバーへの応答の返送に使用されます。
Java サーブレットのプロパティ
サーブレットのプロパティは次のとおりです。
- サーブレットはサーバー側で動作します。
- サーブレットは、Web サーバーから取得した複雑なリクエストを処理できます。
Java サーブレットのアーキテクチャ
サーブレット アーキテクチャは、以下に示すイメージ自体から表現できます。
注意
Java サーブレットの実行
基本的にサーブレットの実行 6 つの基本的な手順が含まれます。
- クライアントはリクエストを Web サーバーに送信します。
- Web サーバーはリクエストを受け取ります。
- Web サーバーは、リクエストを対応するサーブレットに渡します。
- サーブレットはリクエストを処理し、出力の形式でレスポンスを生成します。
- サーブレットは応答を Web サーバーに送り返します。
- Web サーバーは応答をクライアントに送り返し、クライアントのブラウザはそれを画面に表示します。
ここで、なぜサーバーサイド拡張機能が必要なのかという奇妙な点について説明しましょう。
サーバー側の拡張機能の必要性
の サーバー側の拡張機能 動的な Web ページを作成するために使用されるテクノロジーに他なりません。実際には、動的な Web ページの機能を提供するには、Web ページにコンテナまたは Web サーバーが必要です。この要件を満たすために、独立系 Web サーバー プロバイダーは、次の形式で独自のソリューションをいくつか提供しています。 API ( アプリケーション プログラミング インターフェイス)。
これら API Web サーバーで実行できるプログラムを構築できるようになります。この場合、 Java サーブレット のコンポーネント API の 1 つでもあります。 Java Platform Enterprise Edition (現在は「Jakarta EE」として知られています) これは、Java で動的 Web アプリケーションを作成するための標準を定めています。
何かについて学ぶ前に、その何かの必要性を知ることが重要です。これが動的 Web ページの作成に利用できる唯一のテクノロジーというわけではありません。サーブレット テクノロジは、次のような他の Web サーバー拡張機能と似ています。 共通ゲートウェイインターフェース ( CGI) スクリプトと ハイパーテキストプリプロセッサ (PHP)。ただし、Java サーブレットは、次のような制限を解決するため、より受け入れられやすいです。 CGI 低パフォーマンスや低レベルのスケーラビリティなど。
CGI(Common Gateway Interface)とは何ですか?
CGI 実際には、次のようなプログラミング言語を使用して書かれた外部アプリケーションです。 C または C++ これは、クライアント要求の処理と動的コンテンツの生成を担当します。
データ構造における構造とは何ですか
CGI アプリケーションでは、クライアントが動的 Web ページへのアクセス要求を行うと、Web サーバーは次の操作を実行します。
- まず、要求された Web ページを見つけます。 つまり URL を使用して必要な CGI アプリケーションを指定します。
- 次に、クライアントのリクエストに対応する新しいプロセスを作成します。
- プロセス内で CGI アプリケーションを呼び出し、リクエスト情報をアプリケーションに渡します。
- CGI アプリケーションからの応答を収集します。
- プロセスを破棄し、HTTP 応答を準備してクライアントに送信します。
それで、 CGI サーバーはリクエストごとにプロセスを作成および破棄する必要があります。このアプローチは少数のクライアントを処理する場合には適用できますが、クライアントの数が増えるとサーバーのワークロードが増加し、リクエストの処理にかかる時間が増加することは容易に理解できます。
Java サーブレットと CGI の違い
サーブレット | CGI (共通ゲートウェイ インターフェイス) |
---|---|
サーブレットは移植可能で効率的です。 | CGI は移植可能ではありません。 |
サーブレットではデータの共有が可能です。 | CGI ではデータの共有はできません。 |
サーブレットは Web サーバーと直接通信できます。 | CGI は Web サーバーと直接通信できません。 |
サーブレットは CGI よりも安価です。 | CGI はサーブレットよりも高価です。 |
サーブレットは Cookie を処理できます。 | CGI は Cookie を処理できません。 |
サーブレットAPI
サーブレットは 2 つのパッケージから構築されます。
- javax.servlet(基本)
- javax.servlet.http(アドバンス)
これらのパッケージに存在するさまざまなクラスとインターフェイスは次のとおりです。
マウスホイールが正しくスクロールしない
成分 | タイプ | パッケージ |
---|---|---|
サーブレット | インターフェース | javax.servlet.* |
サーブレットリクエスト | インターフェース | javax.servlet.* |
サーブレット応答 | インターフェース | javax.servlet.* |
汎用サーブレット | クラス | javax.servlet.* |
HTTPサーブレット | クラス | javax.servlet.http.* |
HttpServletRequest | インターフェース | javax.servlet.http.* |
HttpServletResponse | インターフェース | javax.servlet.http.* |
フィルター | インターフェース | javax.servlet.* |
サーブレット構成 | インターフェース | javax.servlet.* |
Java サーブレットの利点
- サーブレットは もっと早く CGI よりも、受信した新しいリクエストごとに新しいプロセスを作成する必要がないためです。
- Java で書かれたサーブレットはプラットフォームに依存しません。
- 作成のオーバーヘッドを除去します。 新しいプロセス サーブレットは別のプロセスで実行されないため、リクエストごとに実行されます。すべてのリクエストを同時に処理するインスタンスは 1 つだけです。これによりメモリも節約され、サーブレットがクライアントの状態を簡単に管理できるようになります。
- これはサーバー側コンポーネントであるため、サーブレットは 安全 Webサーバーによって提供されます。
- の API Java サーブレット用に設計されたサーブレットは、プラットフォーム非依存性や移植性などの Java プラットフォームの利点を自動的に取得します。さらに、明らかに、Java プラットフォームで作成された幅広い API を使用できます。 JDBC データベースにアクセスします。
- 個人使用やトラフィックの少ない Web サイトに適した Web サーバーの多くは、無料または非常に高価な料金で提供されています。 安い費用 例えば。 Java サーブレット。ただし、商用グレードの Web サーバーの大部分は、無料の Apache を除いてかなり高価です。
サーブレットコンテナ
サーブレットコンテナ 、 としても知られている サーブレットエンジン、 Java サーブレット コンポーネントの実行時環境を提供するオブジェクトの統合セットです。簡単に言うと、Web サーバー上で Java サーブレット コンポーネントを管理し、Web クライアントのリクエストを処理するシステムです。
サーブレット コンテナによって提供されるサービス:
- ネットワークサービス: サーブレットクラスをロードします。ロードは、ローカル ファイル システム、リモート ファイル システム、または他のネットワーク サービスから行われる場合があります。サーブレット コンテナは、要求と応答が送信されるネットワーク サービスを提供します。
- MIME ベースのメッセージをデコードおよびエンコードします。 MIME ベースのメッセージをデコードおよびエンコードするサービスを提供します。
- サーブレットコンテナを管理します。 サーブレットのライフサイクルを管理します。
- 資源管理 HTML ファイル、サーブレット、JSP ページなどの静的および動的リソースを管理します。
- セキュリティー・サービス: リソースアクセスの認可と認証を処理します。
- セッション管理: を追加してセッションを維持します。 セッションID URL パスに。
結論
Java サーブレット ビジネス ロジックを定義し、複雑な Web リクエストを処理するために重要なコンポーネントです。これらのコンポーネントは Web サイトの動的な開発を促進し、アプリケーションのダイナミクスを変える可能性を大いに秘めています。この記事で学ぶ主な機能の一部を次に示します。
- Java サーブレットは、サーバー側のアプリケーション開発を支援し、動的コンテンツを処理して堅牢で対話型の Web サイトを構築する方法を提供します。
- リクエストが Web サーバーに到達するとすぐに、次のコマンドを使用してサーブレット インスタンスが初期化されます。 熱() メソッドを使用し、そのタイプに応じて HTTP リクエストを doGet() メソッドまたは doPost() メソッドで処理できます。
- サーブレットを使用すると、リクエストを受信するたびにプロセスを作成したり破棄したりすることがなくなるため、Web アプリケーションの応答性と効率が向上します。
Java サーブレットに関する FAQ
Q1. Java サーブレットのライフサイクルとは何ですか?
Java サーブレットには、イニシャライザ (メモリ割り当て) からオブジェクトが破棄される (メモリ割り当て解除) までの、事前定義されたライフサイクルがあります。これは次の手順で行われます。
整数倍精度Java
- init() – Web サーバーがリクエストを受信するとすぐに呼び出され、新しいサーブレット インスタンスが初期化されます。
- service() – クライアントリクエストを処理し、リクエストを適切な doGet() または doPost() にリダイレクトします。
- destroy() – リクエストが処理されるときに呼び出され、レスポンスがクライアントに返され、最後にサーブレットに割り当てられたメモリの割り当てが解除されます。
Q2. Java サーブレットを設定するにはどうすればよいですか?
Java サーブレットの構成は内部で定義されます。 デプロイメント記述子 ファイル - web.xml。 ただし、最近ではほとんどのサーブレット ベースのアプリケーションが @WebServlet アノテーションを使用して Java サーブレットを構成するためにアノテーション ベースの構成を使用しているため、これはレガシーになっています。
例: @WebServlet(name = MyServlet、urlPatterns = /myServlet)
Q3.サーブレットフィルターとは何ですか?
サーブレット フィルターは、ログ記録、監視、デバッグ、トラブルシューティングなどの Web リクエストの前後処理作業を実行するための追加コンポーネントです。