Struts2のアクションとサーブレットの接続と違い

サーブレット処理クライアント要求ステップ

1. WebクライアントがHttpリクエストをサーブレットコンテナ(Tomcat)に送信します

2.サーブレットコンテナは顧客の要求情報を分析します

3.サーブレットコンテナはHttpServletRequestオブジェクトを作成し、顧客から要求された情報をこのオブジェクトにカプセル化します。

4.サーブレットコンテナはHttpServletResponseオブジェクトを作成します 

5.サーブレットコンテナは、リクエストメッセージのURLに従って対応するサーブレットを検索し、リクエスト用に個別のスレッドを作成し、HttpRequestオブジェクトとHttpResponseオブジェクトをパラメータとして新しく作成されたスレッドに渡します。

6.コンテナは、サーブレットオブジェクトのservice()メソッドを呼び出して、ユーザーリクエストへの応答を完了し、同時に動的ページをコンテナに返します。

(または、HttpServletはHttpRequestオブジェクトの関連メソッドを呼び出してHttp要求情報を取得し、HttpResponseオブジェクトの関連メソッドを呼び出して応答データを生成します)

7.サーブレットコンテナは、応答結果をHTTP形式にアセンブルし、Webクライアントに送信します。


   Struts2もコンテナで実行されます。実際、Servletは使用されませんが、最初の4つの手順は同じです。HttpServletRequestオブジェクトとHttpServletResponseオブジェクトが作成されます。したがって、struts2.0では、リクエストオブジェクトはServletActionContextを介して取得できます。 getRequest()。

 Struts2プロセス


    Struts2は本質的にサーブレットであり(S1では全体を制御するためのサーブレットです。S2はフィルタであり、実際にはサーブレットと見なすこともできます)、サーブレットをさらにカプセル化したものであると言えます。
    例え:Webプロジェクトを行うことは、家を建てるようなものです。サーブレットは木のようなものです。木の根で家を建てることはできますが、速度は遅いです
。Struts2は木でできた家のようなものです。家を建てたいときは、それを持ってレンガを追加し、それにタイルを張り、修理し、修理することで、家をすばやく建てることができます。これは、サーブレットを直接使用するよりもはるかに高速です。

長所と短所

1.サーブレットはよりカジュアルで柔軟性があり、標準化が不十分であり、解釈が容易ではありません。

2.セキュリティ、サーブレットはStruts2ほど高くありません。サーブレットは、セッションの誤用や情報漏えいの原因となる可能性があります。

3.保守性、支柱はサーブレットよりはるかに優れています。strutsプロジェクトのコード階層化は非常に明確です。サーブレットを使用する場合、コード構造は明確ではなく、新しいBUGを簡単に導入できます。



おすすめ

転載: blog.csdn.net/m0_37541228/article/details/76937532