HttpServletRequest の理解

Webサーバーはhttp リクエストを受信し、リクエストごとにHttpServletRequestオブジェクトとHttpServletResponseオブジェクトを作成します。

从客户端取数据找HttpServletRequest
向客户端发送数据找HttpServletResponse

1. サーブレットの実行プロセス

ユーザーの場合、リクエストはクライアントで開始され (たとえば、特定の種類の製品をクエリする)、結果がページに表示されます (たとえば、n 個の製品がクエリされ、最初のページのコンテンツが表示されます)ページ上ではマウスの左ボタンを 1 回クリックするだけですが、サーバーでは 1 回クリックするだけでは済みません。サーバーの動作を見てみましょう。

まず、次の図を見てみましょう。

図からわかるように、

クライアントのネットワーク要求は、まず Http サーバー (Web サーバー、Web コンテナとも呼ばれます。Web アプリケーションの実行に必要な環境を提供し、クライアントの Http 要求を受信する必要があります) によって受信されます。

Web サーバーは、要求されたパスに従って、対応するサーブレット コンテナに要求を転送します (サーブレット エンジンとも呼ばれ、サーブレットの動作に環境サポートを提供します。Tomcat またはその他のサーバーとして理解できます)。

サーブレット コンテナは、対応する仮想パス (@WebServlet で構成) に従ってサーブレットをロードし、サーブレットがインスタンス化されていない場合は、サーブレットのインスタンスを作成します (init メソッドを呼び出します)。

Servlet コンテナは、ServletRequest オブジェクト (HTTP リクエスト情報がカプセル化されている) と、ユーザーの HTTP リクエストに従って HTTP リクエストに応答できる ServletResponse オブジェクトを作成します。

次に、HttpServlet で書き換えられた service(ServletRequest req, ServletResponse res) メソッドを呼び出し、このメソッドで 2 つのオブジェクト ServletRequest と ServletResponse を下方に変換し、よく知られた 2 つのオブジェクト HttpServletRequest と HttpServletResponse を取得します。

次に、クライアントのリクエストを HttpServlet の保護された変更されたサービスに転送します (HttpServletRequest req、HttpServletResponse resp)。

service(HttpServletRequest req, HttpServletResponse resp) は、要求されたメソッド (get、post、put、delete、head、options、trace) に応じて、doGet、doPost などのさまざまなメソッドを呼び出します。

サーバーは Http リクエストの処理を完了すると、HttpServletResponse オブジェクトに従って処理結果を Http レスポンスとしてクライアントに返します。

上記は、クライアントがリクエストを開始し、レスポンスを受信する前にサーバーによって実行される操作です。サーブレットの場合、その実行プロセスはライフ サイクルに相当します: 1. サーブレット コンテナによってロードされる ------> 2 . サーブレットコンテナが転送したクライアントからのHTTPリクエストを受信 --------> 3. 処理後、処理結果をクライアントに返却 --------> 4. Webサービスが破棄されるとWebサービスは破棄されます。終了します。このうち、ステップ 2 と 3 は Web サービス実行中にクライアントからの複数のリクエストにより複数回実行される可能性があり、ステップ 1 と 4 もサービスの再起動またはアクティブな破棄により複数回実行される可能性があります。

おすすめ

転載: blog.csdn.net/m0_59281987/article/details/129658168