202001220 - サーブレットルーキー学習

何サーブレットである
Javaサーブレットは、Webブラウザまたはその他のHTTPクライアントからの要求とHTTPサーバ上のデータベースやアプリケーション間の中間層として使用されているサーバやアプリケーションサーバ上で動作しているプログラムです。

サーブレットのライフサイクル
サーブレットのライフサイクルは、作成から破壊に全体のプロセスとして定義することができます。以下は、サーブレットに従う手順です:
サーブレットは、init()メソッドを呼び出すことによって初期化されます。
クライアント要求を処理するサーブレットの呼び出しサービス()メソッド。
呼び出すことにより、サーブレットが破棄()メソッドは、(終了)を終了します。
最後に、サーブレットは、JVMのガベージコレクタによって収集されたごみです。

initメソッド
initメソッドは、一度だけ呼び出すように設計されています。それは、あなたが最初にサーブレットを作成するときに呼び出され、それはもはや後続の各ユーザーの要求に応じて呼び出されません。したがって、アプレットの初期化方法と同様に、一回の初期化のために使用されます。

サーブレットは、サーブレットURLへの最初の呼び出しに対応するユーザを作成していますが、サーブレットを指定することができた場合、サーバが最初に起動されたときにロードされます。

ユーザがサーブレットを呼び出すと、それはサーブレット・インスタンスが作成され、新しいスレッド内の各ユーザ要求の結果は、doGetメソッドまたはdoPostメソッドのメソッドに適切な時間を転送します。init()メソッドは、単純に作成したり、ライフサイクルサーブレット全体で使用されるいくつかのデータをロードします。

public void init() throws ServletException {
  // 初始化代码...
}

サービスメソッド
サービス()メソッドは実際の作業を行う主な方法です。サーブレットコンテナ(すなわち、Webサーバ)は、クライアント(ブラウザ)からの要求を処理するため、およびクライアントにフォーマットされたレスポンスバックを書くためのサービス()メソッドを呼び出します。

サーバは、要求サーブレットを受信するたびに、サーバは新しいスレッドやコールサービスを生成します。サービス()メソッドをチェックするHTTPリクエスト(GET、POST、PUT、DELETEなど)のタイプ、および適切な時と同様のdoGet、doPostメソッド、doPutメソッド、doDelete呼び出します。

public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

doGet()メソッドを
通常のURL要求から、または未指定METHOD HTMLフォームからのGET要求、それはのdoGet()メソッドによって処理されます。

public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

doPost()メソッド

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

破壊()メソッド
を破壊()メソッドは、サーブレットのライフサイクルの最後で呼ばれるように、一度だけ呼び出されます。破壊()メソッドを使用するには、ディスクに書き込まれ、そして他の類似の清掃活動を行っており、サーブレットのデータベース接続をオフにし、バックグラウンドスレッドを停止し、リスト、またはクッキーカウンターをクリックすることができます。

()メソッドを破壊呼び出した後、サーブレットオブジェクトはガベージコレクションとしてマークされています。次のように定義されたメソッドを破壊します:

  public void destroy() {
    // 终止化代码...
  }

チャート
次の図に示す典型的なサーブレットのライフサイクルプログラムを。

最初のHTTPリクエストは、サーブレットコンテナに委任されているサーバに到着しました。
サーブレットサーブレットコンテナは、サービス()メソッドを呼び出す前にロードされました。
複数のスレッドによって生成され、その後サーブレットコンテナハンドル複数の要求、サービスの単一のサーブレットの例()メソッド内の各実行スレッド。


サーブレットフォームデータ
多くの場合、Webサーバーに、そして最終的にはデーモンにブラウザからいくつかの情報を渡す必要があります。ブラウザがWebサーバーにこの情報を渡すために2つのメソッドを使用することができますGETとPOSTメソッドです。

GETメソッドの
GETメソッドは、Webブラウザからサーバに情報を伝達するデフォルトの方法で、それが長い文字列が生成されます、それはあなたのブラウザのアドレスバーに表示されます。あなたは、サーバーのパスワードやその他の機密情報を渡したい場合は、GETメソッドを使用しないでください。GETメソッドは、サイズが限られている:リクエスト文字列は1024文字まで持つことができます。

ヘッダ情報転送を用いQUERY_STRING、およびこのタイプの要求を処理するためのdoGet()メソッドを使用して、QUERY_STRING環境変数、サーブレットを介してアクセスすることができます。

POSTメソッド
別のデーモンに情報を送信するより信頼性の高い方法は、POSTメソッドです。GETメソッドとパッケージ情報にPOSTの方法は基本的に同じですが、この方法は、URLなどの情報を投稿されていない方法は?文字のテキスト文字列が送信されますが、個別のメッセージとしてこの情報。ニュースが標準出力としてデーモンに達したとき、あなたは、解析し、標準出力に使用することができます。このタイプのリクエストを処理するためのdoPost()メソッドを使用してサーブレット。

フォームデータを使用してサーブレットを読み取る
サーブレットフォームデータ処理を、データを自動解析に応じて、異なる方法を使用することができます。

getParameter():あなたは、フォームパラメータの値を取得するためにrequest.getParameter()メソッドを呼び出すことができます。
getParameterValues():パラメータが複数回表示された場合、このメソッドが呼び出され、戻り複数の値、例えばチェックボックスれます。
getParameterNamesメソッド():現在のリクエストの全てのパラメータは、メソッド呼び出しの完全なリストを取得したい場合。

HTTPサーブレットのクライアント要求
ここに画像を挿入説明

サーブレットステータスコード
ここに画像を挿入説明
ここに画像を挿入説明

公開された666元の記事 ウォン称賛39 ビュー60000 +

おすすめ

転載: blog.csdn.net/qq_36344771/article/details/104057389