HTTP、サーブレット

HTTPの何である
ハイパーテキスト転送制御プロトコル、アプリケーション層プロトコルは、ブラウザを定義する(または別のプログラムであってもよい)とウェブサーバ間通信の処理及びフォーマットデータ
通信中
1)サーバ接続確立要求にブラウザが。
2)ブラウザ最初の要求データをパック、サーバに要求を送信します。
3)サーバがリクエストを処理し、データパッケージは、ブラウザに送信されます。
4)サーバがデータを送信し、接続を閉じた後。
リクエストパケット2応答パケットの
パケットの構造:
1:リクエスト行(1行のコンテンツパケット)
を含む:
?リクエスト形態(取得/ POST)を取得
要求をリソース・パス(例えば/ APPNAME /サーブレットなどのコンテンツポート番号ホーを)? www.baidu.com要求パス
タイプは、プロトコルX 'のバージョンではないのですか?
2:メッセージヘッダの数(ヘッダは、W3Cによって定義されたいくつかのキーと値のペアの特殊な意味である)
コンテンツタイプ=テキスト/:などのメッセージヘッダのスタイルHTML、
サーバとブラウザは、これらのメッセージの頭の合意を遵守します。
ブラウザを終了しますが、プログラム的に生成することができる一般的なものから、サーバによって生成された舞ヘッダーメッセージ
3:コンテンツエンティティ

リクエストメソッドがPOSTの方法である場合は、リクエストのパラメータと値がここに配置されます。
リクエストは、実施の形態を得ることである場合、要求は内部の要求リソースパスに含まれるパラメータ価値はありません。

応答パケットの構造:
最初の部分は:ステータスラインの
タイプがプロトコルのバージョンではない
ステータスコード(状態コードは、異なる状態の数が数表現であります

?500:(誤っすなわち、プログラムコード)システムエラー
404 :?リソース(アクセス・パス・エラー)が見つかりません
200を:?正しい
405

第二部:メッセージヘッダ複数の
パートIII:固形分
サーバがブラウザに処理結果を返します


それは太陽がWebサービス仕様のためのコンポーネント開発する会社を拡大している
サーブレットの主なタスクを:
クライアントから送信されたデータ読み取りに
結果を生成することを
、クライアントとの暗黙的なデータに(すなわちドキュメント)明示的なデータを送信する(HTTP応答データ)

作業プロセス:
クライアントのWebサーバに要求を発行します

Webサーバは、サーブレットに送信された要求を受信した後

オブジェクトのこのインスタンスのサーブレットコンテナを生成し、適切なメソッドを呼び出すと、処理のためにクライアントにHTTPリクエストをServletAPIし、Webサーバの処理の結果に応答を返します。

受け取ったWebサーバの設定インスタンスオブジェクトからのサーブレットの応答がクライアントに送り返されます。

 

コンテナ:
Webコンテナ:WEBは、複数のアプリケーションと環境に展開することができます。

Tomcatコンテナ:Javaサーブレット、JavaServer Pagesの、Javaの表現言語とJavaのWebSocket(のJava EE)技術のオープンソース実装。

サーブレットコンテナ:サービスプログラムを意味し、サーバアプレットの完全な名前。主な役割は、のdoGet()メソッドとdoPost()メソッドなどが設けられた上部コンテナ(Tomcatの)です。そのライフサイクルのインスタンス化、初期化、Tomcatコンテナによって制御破壊を呼び出します。


Webコンテナを管理および操作サーブレットの原因である
含むサーブレットの容器支持
通信サポート(リクエスト・オブジェクトとレスポンス・オブジェクトに情報およびレスポンス情報を要求する)
サーブレットライフサイクル管理(サーブレットの生成されたサーブレットおよび破壊、およびサーブレット関連メソッド呼び出し)
マルチスレッディングサポート(スレッドの作成、スレッドが開始されると、スレッドの同期を実行しているスレッド)
のためのJSPサポート
のセキュリティを扱います

簡単に言えば:
Webコンテナは、主に(サーブレット、JSP)のアプリケーションコンポーネントで使用されているコンテナは、サーブレット、JSPコンテナは、環境変数と直接相互作用する環境を提供しました。このように、我々は、他のシステムの問題に注意を払うことなく、サーブレットを達成するためのビジネスロジックに集中することができます。

 

 


1)クライアントは、WebサーバーへのHTTP要求を開始します。

リクエストがWebサーバーハンドルにより、静的なページのためである場合2)HTTP Webサーバーの要求が、受け入れられています。要求は、Java Webコンポーネント(サーブレットまたはJSP)である場合、そのWebコンテナに移しました。Webコンテナは、プロセス、異なるプロセスまたは他のWebサービスをホストのホストでプロセスを開始することができます。

3)呼び出しに応じて決定される特定のWebベースのサーブレットコンテナサーブレット・プロファイル、及び目標要求は、応答オブジェクトは、それに渡されます。

4)クライアントオブジェクトによって、サーブレットの要求は、ユーザが顧客の要求とどのような情報が他のいくつかの情報であり、誰であるか知っています。要求がクライアントオブジェクトに対応して返されるサーブレット情報処理された後に返されます。

5)処理要求サーブレットが完了すると、Webコンテナは、応答、ウェブ・サーバに戻るをリフレッシュ。

 

 


サーブレットのライフサイクル
ライフサイクルは、そのメソッドを呼び出して、リソースの割り当て、サーブレットコンテナのインスタンスを作成する方法を意味する、の破壊過程の例として
第一段階:インスタンス化は、(サーブレットはオブジェクトを作成し、コンストラクタを呼び出す)
、次の2つの場合にオブジェクト・インスタンスになりの。
最初のケース:
要求が容器に到達したときに、サーブレットコンテナは、オブジェクトが存在するかどうかを調べるために、そうでない場合、インスタンスを作成します。
第二の場合:
起動時の容器、またはそこサーブレットロードオンstarup構成するかどうか、web.xmlファイルをチェックし、新しいアプリケーションの展開。その場合は、サーブレットのインスタンスが作成されます。
ロード・オン・starupパラメータ値が小さいほど、より高い優先度レベル(最小値は0、最高の優先度です)。
<サーブレット>
<サーブレット名>がloginservlet </サーブレット名>
<サーブレットクラス> com.gezhi.controller.LoginServlet </サーブレットクラス>
の<load-on-startup> 1 </のload-on-startup>
< /サーブレット>
実験1:コンストラクタ設定し、サービスを実行するための多元接続方式の観察が有する
実験2:ロード・オン・starup構成ファイルに追加し、観察されたインスタンスのタイミングを

フェーズII:初期
リソースサーブレットの割り当てのために、init(のServletConfig設定)を呼び出し、
初期化パラメータ方式の設定オブジェクトは、サーブレットにアクセスするために使用することができます。
パラメータのinit-のparam設定を使用して初期化パラメータ。
initは上書きすることができます。
実験1:オーバーライドinitプロセスは、観察される実際の(および上側嵌合実験)を行う
実験2:追加の<init-PARAM>を、その値の設定によって
<INIT-PARAM>
の<param-name>の名前</ PARAM名>
<値-param>のzhangsan </ PARAM値>
</ INIT-PARAM>



コンフィグ=のgetServletConfigのServletConfig();
文字列= config.getInitParameter追加( "アドレス");
、------------------------------ ---------------
は、initに参加することが許可されていない場合は、その後のServletConfigの取得
名を= config.getInitParameter(「名前」);

ステージIII:レディ/通話
要求がコンテナに到着、コンテナはサービスサーブレット・オブジェクト()メソッドを呼び出します。
HttpServletをサービス()メソッドは、doGet()またはdoPost()メソッドを呼び出すために要求方式に基づいて説明します。
しかし、これらの2つの方法がデフォルトで行う、上書きするサブクラス化する必要があり、例外がスローされます。

 

フェーズIV:の破壊
独自のアルゴリズムに基づいて、血管、サーブレットオブジェクトはもはや削除が必要です。
削除する前に、サーブレットオブジェクトの破棄()メソッドを呼び出します。
リソースを解放する()メソッドを破壊します。
サービスメソッドが複数回実行される一方で、サーブレットのライフサイクル全体に、initの中で、一度だけ破壊します。

 

おすすめ

転載: www.cnblogs.com/heqi-linxin1314/p/10953300.html