サーブレット API とはどういう意味ですか?

(*-*)浩
リリース: 2019-05-16 14:18:25
オリジナル
5747 人が閲覧しました

Java Servlet Development Kit (JSDK) は、サーブレットを作成するときに必要な複数のソフトウェア パッケージを提供します。これらには、すべてのサーブレット用の 2 つの基本パッケージ、javax.Servlet と javax.Servlet.http が含まれます。 Java サーブレット開発ツールは、Sun の Web サイトからダウンロードできます。

推奨コース: Java チュートリアル

サーブレット API とはどういう意味ですか?

以下では、javax.Servlet.http が提供する HTTP サーブレット アプリケーション プログラミング インターフェイスを主に紹介します。
HTTP サーブレットは、HTML フォームを使用してデータを送受信します。 HTTP サーブレットを作成するには、HTML テーブルを処理するための特殊なメソッドを備えた GenericServlet のサブクラスである HttpServlet クラスを拡張します。 HTML フォームは と タグによって定義されます。通常、フォームには入力フィールド (テキスト入力フィールド、チェック ボックス、ラジオ ボタン、選択リストなど) とデータを送信するためのボタンが含まれています。情報を送信するときは、サーバーが実行するサーブレット (または他のプログラム) も指定します。 HttpServlet クラスには、init()、destroy()、service() およびその他のメソッドが含まれます。 init() メソッドと destroy() メソッドは継承されます。

サーブレット API の一般的なメソッド:

(1)サーブレットAPIのInit()メソッド
サーブレットのライフサイクルにおいて、init()メソッドは一度だけ実行されます。これは、サーバーがサーブレットをロードするときに実行されます。サーブレットの起動時、またはクライアントが初めてサーブレットにアクセスしたときにサーブレットをロードするようにサーバーを構成できます。サーブレットにアクセスするクライアントの数に関係なく、init() が繰り返し実行されることはありません。
デフォルトの init() メソッドは通常、要件を満たしていますが、通常はサーバー側のリソースを管理するために、カスタムの init() メソッドでオーバーライドすることもできます。たとえば、GIF 画像を 1 回だけロードするカスタム init() を作成すると、GIF 画像を返し、複数のクライアント要求を含むサーブレットのパフォーマンスが向上します。別の例は、データベース接続の初期化です。デフォルトの init() メソッドはサーブレットの初期化パラメータを設定し、その ServletConfig オブジェクト パラメータを使用して構成を開始するため、init() メソッドをオーバーライドするすべてのサーブレットは super.init() を呼び出して、これらのタスクが確実に実行されるようにする必要があります。 service() メソッドを呼び出す前に、init() メソッドが完了していることを確認する必要があります。
(2) サーブレット API の Service() メソッド
service() メソッドはサーブレットの中核です。クライアントが HttpServlet オブジェクトを要求するたびに、オブジェクトの service() メソッドが呼び出され、「要求」 (ServletRequest) オブジェクトと「応答」 (ServletResponse) オブジェクトがパラメータとしてこのメ​​ソッドに渡されます。 service() メソッドは HttpServlet にすでに存在します。デフォルトのサービス関数は、HTTP リクエストのメソッドに対応する do 関数を呼び出します。たとえば、HTTP リクエスト メソッドが GET の場合、デフォルトで doGet() が呼び出されます。サーブレットは、サーブレットがサポートする HTTP メソッドの do 機能をオーバーライドする必要があります。 HttpServlet.service() メソッドは、リクエスト メソッドが適切なハンドラーを呼び出すかどうかをチェックするため、service() メソッドをオーバーライドする必要はありません。対応する do メソッドをオーバーライドするだけで完了です。
◆クライアントが HTML フォームを通じて HTTP POST リクエストを行うと、 doPost() メソッドが呼び出されます。 POST リクエストに関連付けられたパラメータは、別の HTTP リクエストとしてブラウザからサーバーに送信されます。サーバー側のデータを変更する必要がある場合は、doPost() メソッドを使用する必要があります。
◆クライアントが HTML フォームを通じて HTTP GET リクエストを発行するか、URL を直接リクエストすると、 doGet() メソッドが呼び出されます。 GET リクエストに関連するパラメータは URL の末尾に追加され、このリクエストとともに送信されます。 doGet() メソッドは、サーバー側のデータが変更されない場合に使用する必要があります。
サーブレットの応答には次のタイプがあります。
◆出力ストリーム。ブラウザはコンテンツ タイプ (テキスト/HTML など) に従って解釈します。
◆HTTP エラー応答。別の URL、サーブレット、JSP にリダイレクトされます。
(3)サーブレット API の Destroy() メソッド
destroy() メソッドは 1 回だけ実行されます。つまり、サーバーが停止し、サーブレットがアンインストールされるときに実行されます。通常、サーブレットはサーバー プロセスの一部としてシャットダウンされます。通常はデフォルトの destroy() メソッドで十分ですが、通常はサーバー側のリソースを管理するためにオーバーライドできます。たとえば、サーブレットが実行中に統計を蓄積する場合、サーブレットがロードされていないときに統計をファイルに保存する destroy() メソッドを作成できます。別の例は、データベース接続を閉じることです。
サーバーがサーブレットをアンインストールすると、すべての service() メソッド呼び出しが完了した後、または指定された時間が経過した後に destroy() メソッドが呼び出されます。サーブレットは、service() メソッドの実行時に他のスレッドを生成する場合があるため、destroy() メソッドの呼び出し時にこれらのスレッドが終了または完了していることを確認してください。
(4)サーブレット API の GetServletConfig() メソッド
GetServletConfig() メソッドは、初期化パラメータと ServletContext を返すために使用される ServletConfig オブジェクトを返します。 ServletContext インターフェースは、サーブレットに関する環境情報を提供します。
(5)サーブレット API の GetServletInfo() メソッド
GetServletInfo() メソッドは、作成者、バージョン、著作権など、サーブレットに関する情報を提供するオプションのメソッドです。
サーバーが sevlet の Service()、doGet()、doPost() の 3 つのメソッドを呼び出す場合、「リクエスト」オブジェクトと「レスポンス」オブジェクトがパラメータとして必要です。 「リクエスト」オブジェクトはリクエストに関する情報を提供し、「レスポンス」オブジェクトはブラウザに応答情報を返すための通信パスを提供します。 javax.Servlet パッケージの関連クラスは ServletResponse と ServletRequest であり、javax.Servlet.http パッケージの関連クラスは HttpServletRequest と HttpServletResponse です。サーブレットは、これらのオブジェクトを通じてサーバーと通信し、最終的にはクライアントと通信します。サーブレットは、「リクエスト」オブジェクトのメソッドを呼び出すことで、クライアント環境、サーバー環境情報、およびクライアントから提供されるすべての情報を学習できます。サーブレットは、Response オブジェクトのメソッドを呼び出して、クライアントに送り返す準備ができている応答を送信できます。

以上がサーブレット API とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!