Javaでのサーブレットのライフサイクル:メソッド、アーキテクチャ、比較、セットアップ

公開: 2021-03-03

目次

序章

サーブレットは、コンポーネントベースでプラットフォームに依存しないだけでなく、Webベースのアプリケーションの構築を非常にサポートするメソッドを生成します。 サーブレットは、データベースにアクセスするためにJavaAPIおよびJDBCAPIにアクセスできます。 Javaサーブレットの場合、CGI(Common Gateway Interface)プログラムのパフォーマンスに制限はありませんが、いくつかの欠点があります。

サーブレットとは何ですか?

サーブレットは、動的なWebページを作成するのに非常に有益なテクノロジです。 これは、WebブラウザとHTTPクライアントまたはサーバーの間の中間層として機能します。 サーブレットの助けを借りて、最初にユーザーからの入力を収集し、次に動的にWebページを作成します。 サーブレットは、サーバーとホストアプリケーションの機能を拡張します。 サーブレットはサーバーの機能を拡張し、ユーザーに対するあらゆるタイプの要求にも応答します。

ソース

CGIとサーブレット

サーブレットの前は、CGIが広く使用されていました。 CGIは、ユーザーから受け取った要求をアプリケーションプログラムに渡す方法です。 CGIはWebサーバーの方法ですが、ブラウザー(クライアント)からの応答も取得します。 ユーザーがブラウザにWebページを要求すると、サーバーはそれをブラウザに送り返します。

クライアントがWebページのフォームに入力して再送信しようとすると、アプリケーションプログラムによって処理されます。 サーバーは情報を小さなWebアプリケーションプログラムに渡します。 このプログラムは最初にデータを処理し、次に確認メッセージを介してデータを送り返します。

サーブレットのライフサイクルメソッドの概要

サーブレットには主に3つのライフサイクルメソッドがあり、次のように説明できます。

  1. 初期化()
  2. サービス()
  3. 破壊する()

ソース

サーブレットアーキテクチャ

  • まず、クライアントから送信されたデータを読み取ります。 次に、WebページにHTMLフォームを挿入し、クライアントから送信されたリクエストを送信します。
  • その後、サーブレットはデータを処理してデータベース管理システムに接続し、Webサービスを呼び出してRMIを実行します。
  • 処理後、ドキュメントはテキストおよびgif形式で送信できます。
  • 最後に、HTTPをクライアントに送信します。

ソース

次に、これらの方法について詳しく説明します。

1. init()

init()メソッドは、サーブレットインスタンスが作成された後に1回だけ呼び出されます。 最初に、サーブレットを初期化します。 Servlet.init()は、サーブレットインスタンスが正常に作成されたことを示します。

init()メソッドの構文は次のように与えられます:

public void init(ServletConfig config)はServletException{をスローします

//初期化コード

}

2. service()

サーブレットがリクエストを受信するたびに、Webコンテナはservice()メソッドを呼び出します。

  • 要求されたデータを収集するにはb
  • クライアントでは、サービスリクエストオブジェクトが使用されます。
  • 出力コンテンツを生成するには、 ServletResponseオブジェクトを使用します。

service()メソッドのシグネチャは次のように与えられます。

public void service(ServletRequest request、ServletREsponse response)

ServletEXception、IOException{をスローします

//リクエスト処理コード

}

service()メソッドは、doGet、doPost、doPut、doDelete、およびその他の多くのメソッドを使用します。

3. destroy()

ユーザーは、サーブレットのライフサイクルで少なくとも1回destroy()メソッドを呼び出します これは、データベース接続を終了し、割り当てられたメモリとリソースを解放するために使用されます。 また、クリーンアップの目的にも役立ち、ガベージコレクションはこれに関連付けられています。

destroy()メソッドのシグネチャは次のとおりです。

public void destroy(){

//ファイナライズコード

}

また読む:サーブレットとJSP

サーブレットの環境設定

サーブレットアプリケーションを作成するには、最初に、Tomcatサーバーのインストールなどのいくつかの手順に従う必要があります。これについては以下で説明します-

1.ディレクトリ構造の作成

ソース

まず、Apache – Tomcat\webappsディレクトリという名前のディレクトリ内に上記のディレクトリ構造を作成する必要があります。 すべてのHTML、静的ファイル、画像をWebアプリケーションの下に保持してフォルダーを作成する必要があります。 サーブレットはクラスフォルダに保持する必要があります。 最後に、web.xmlファイルはWEB-INFフォルダーの下にある必要があります。

2.サーブレットの作成

サーブレットを作成するには、3つの異なる方法があります。

  1. サーブレットインターフェースを実装する。
  2. GenericServletクラスを拡張する。
  3. HTTPサーブレットクラスを拡張する必要があります。

httpServlet抽象クラスを拡張できれば、主にサーブレットを形成できます。

3.サーブレットのコンパイル

サーブレットをコンパイルするには、JARファイルが必要です–

  1. クラスパスを設定する。
  2. jarをJRE/lib/extフォルダーに貼り付けます。

4.デプロイメント記述子を作成します

DDは、Webベースのサーバーで使用されるXMLファイルとして定義できます。

サーブレットを簡単に実行できます。 DDはいくつかの重要な目的に使用されます。

  1. URLをサーブレットクラスにマッピングする。
  2. パラメータを初期化する。
  3. エラーページを定義する。
  4. セキュリティロールによる。
  5. タグライブラリを宣言する。

5.サーバーを起動します

Apache Tomcatサーバーを起動するには、apache-tomcat / binディレクトリの下にあるstartup.batファイルをダブルクリックする必要があります。これにより、サーバーが機能し始めます。

6.Tomcatサーバーを初めて起動する

Tomcatサーバーを初めて起動するには、Environment変数にJAVA_HOMEを設定する必要があります。 以下の手順を以下に示します。 [マイコンピュータ]を右クリックして、[プロパティ]に移動する必要があります

ソース

  1. 次に、 [詳細設定]タブに移動し、[環境変数]ボタンをクリックする必要があります

ソース

  1. したがって、 「新規」ボタンをクリックして、 「変数名」テキストフィールドにJAVA_HOMEと入力し、「変数値」テキストフィールドにJDKのパスを入力します。 次に、[OK]をクリックして保存する必要があります。

ソース

7.サーブレットアプリケーションの実行

サーブレットボタンを実行すると、次のようになります–

ブラウザを開いた後、 http:localhost:8080 / First/helloと入力する必要があります

チェックアウト:インドのJava開発者給与

サーブレット要求インターフェース

ServletRequestは、サーブレットに関する本物の情報をクライアントに提供することを目的としています。

コンテンツタイプ、長さ、パラメータ値などが含まれます。

メソッド

1. getAttribute(String)

属性が存在しない場合、要求に応じて属性の値を返します

その後、NULLを返します。

2. getAttributeNames()

クライアントから要求された現在の属性の名前を返します。

3. getCharacterEncoding()

いくつかの文字セットを返します。

4. getContentLength()

要求されたデータエンティティのサイズを返します

5. getContentType()

最初に、オブジェクトのIDを要求します。 見つからない場合は、NULL値を返します。

6. getInputStream()

クライアントが受信したデータのバイナリストリームを返し、文字列を返します。

7. getParameter(String)

パラメータの文字列を返します。

8. getParameterNames()

パラメータ名を返します。

9. getParameterValues(String)

パラメータの値を返します。 それらは常に文字列の形で存在します。

10. getProtocol()

プロトコルとバージョンを<protocol>/<majorversion>。<minorversion>の形式で返します。

11. getReader()

バッファリングされたリーダーを返し、リクエスト本文のテキストを読み取ります。

12. getRealPath(String)

仮想パスを回避し、実際のパスを返します。

13. getRemoteAddr()

IPアドレスを返します。

14. getRemoteHost()

エージェントの完全に構造化されたホスト名を返します。

15. getScheme()

リクエストで使用されたURLを返します。

16. getServerName()

サーバーのホスト名を返します。

17. getServerPort()

ポート番号を返します。

18. setAttribute(String、Object)

このメソッドは、あらゆる種類のリクエストの属性を蓄積します。

サーブレットの応答

ServletResponseはオブジェクトを呼び出し、さまざまなユーザーの応答が記録されます。 Webコンテナは、これらすべてのアクティビティを担当します。 これを作成する手順は非常に重要です。 手順は、オブジェクトを作成することです。

次に、以下でServletConfigServletContextについて詳しく説明します。

ServletConfig

1. Webコンテナは、初期化パラメータに基づいて構成オブジェクトを作成します。

2.サーブレットごとに1つのServletConfigが存在する必要があります。

メソッド

1. Equals(Object)

現在のオブジェクトが指定されたオブジェクトと等しい値を持っているかどうかをチェックします。

2. GetHashCode()

デフォルトのハッシュ関数として機能します。

3. GetType()

現在のインスタンスのタイプを返します。

4. MemberwiseClone()

このオブジェクトを呼び出すと、浅いコピーを作成できます。 デフォルトでは現在のオブジェクトを参照します

5. ToString()

現在のオブジェクトを表す文字列を返します。

ServletContext

以下でServletContextについて説明しましょう。

  1. Webアプリケーションのすべてのサーブレットが参照オブジェクトにアクセスできるようにする必要があります。
  2. 参照オブジェクトは、実際にはこれらのランタイム実装です。

2種類のサーブレットは次のように定義できます。

1.汎用サーブレット

ジェネリックサーブレットをプロトコルに依存しないものと呼びます。また、オーバーライドして呼び出す必要があります。 汎用サーブレットは3つの方法で呼び出すことができます–

  • HTMLファイル

WebContent/index.htmlのような非常に単純なHTMLファイルを作成できます。

  • Javaクラスファイル

GenericServletクラスを拡張することにより、汎用サーブレットを作成できます。 単純な新しいクラスファイルを作成できる場合は、その名前をgenericに変更できます。 ファイルパスは次のようになります:/ javaResouces / src / default package/generic.java。

  • XMLファイル

このファイルは、パスWebContent / WEB-INF/web.xmlにあります。 サーブレットを特定のURLにマップできます。

2.HTTPサーブレット

このタイプのサーブレットは、サーブレットクラスの拡張に他なりません。 HTTPに依存しますが、Webブラウザーとサーバーの通信を支援するいくつかのルールを設定し、HTTPサーブレットはdoGet()またはdoPost()メソッドをオーバーライドすることもできます。 また、両方のメソッドをオーバーライドできます。

サーブレットの利点

ここで、サーブレットのいくつかの利点を見てみましょう–

  1. パフォーマンスは抜群です。
  2. サーブレットは、サーバーのアドレス空間内で実行できます。 その結果、クライアントの要求を処理するために別のアドレス空間を作成する必要はないと言えます。
  3. これらはプラットフォームに依存せず、主にコンポーネントベースです。
  4. セキュリティマネージャがリソースとデータを保護するためにいくつかの制限を設定するため、サーブレットは保護されます。
  5. 作業中、ユーザーはガベージ割り当て手法としてメモリを解放することを心配する必要はありません。
  6. すべてのライブラリが利用可能であるため、サーブレットは完全な機能を提供します。 アプレットやその他のメカニズムと簡単に通信できます。

ソース

サーブレットのデメリット

サーブレットの制限については、次のように説明します–

  1. JVMに一度にロードできるサーブレットは1つだけです。 つまり、リクエストの数が重要であると言えます。
  2. リクエストがある場合、スレッドのみが存在できます。 そこにプロセスが存在するべきではありません。
  3. サーブレットの設計にはコストがかかり、場合によっては非常に問題があります。
  4. サーブレットを実行するには、サーバー上のJRE(Java Runtime Environment)などのブラウザーで他のセットアップが必要です。

また読む: Javaプロジェクトのアイデアとトピック

世界のトップ大学からオンラインでソフトウェアコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

デジタル世界のこの現代では、テクノロジーとインターネットがすべての原動力になっています。 インターネットは落ち着きがありません。 毎秒、大量のデータを転送するのに忙しいです。

しかし、データの一括転送により、速度も必要になるため、インターネットの速度が低下します。 したがって、動的サイトはソフトウェア開発者によって作成されます。 これらのサイトは常に変更および更新されます。 Javaと開発のサーブレットについてさらに知るには、フルスタックソフトウェア開発のupGradのExecutive PGプログラムをチェックして、旅を始めてください。

この記事の主な目的は、サーブレットの基本的な概念を読者に提供して、サーブレットに関する基本的な考え方を理解できるようにすることです。

あなたの夢の仕事に着陸

フルスタック開発のエグゼクティブPGプログラムに今すぐ申し込む