[Java学習ノート]TomCatとサーブレットのインタラクション

7258 ワード

サーブレットとは?
Servlet(Server Applet)は、全称Javaサーブレットであり、中国語訳はない.Javaで作成されたサーバ側プログラムである.データをインタラクティブに閲覧・修正し、動的なWebコンテンツを生成するのが主な機能である.狭義のサーブレットとはJava言語で実現されたインタフェースのことであり、広義のサーブレットとはこのサーブレットインタフェースを実現したクラスのことであり、一般的にはサーブレットを後者.サーブレットはJava対応のアプリケーションサーバで動作します.実装上、サーブレットは任意のタイプの要求に応答することができるが、ほとんどの場合、サーブレットはHTTPプロトコルに基づくWebサーバを拡張するためにのみ使用される.
全体的にサーブレットの機能は応答を担当することである.
Tomcatとは
TomcatはWebアプリケーションサーバであり、サーブレット/JSPコンテナである.Tomcatはサーブレットコンテナとして,顧客要求の処理を担当し,要求をサーブレットに転送し,サーブレットの応答を顧客に返信する.したがって、サーバは、全体的に要求の伝達、応答の伝達を担当します.
サーブレットのライフサイクル
  • 作成/init()サーブレットコンテナ起動時:webを読み込む.xmlプロファイルの情報、サーブレットコンフィグオブジェクトを作成サーブレットコンフィグオブジェクトをパラメータとしてサーブレットオブジェクトを呼び出すinitメソッド(load-on-startupラベルが設定されている場合のみ、オブジェクトが直接構築されます).サーブレットコンテナが起動すると、お客様がサーブレットに初めて要求を発行し、サーブレットコンテナはメモリに指定されたサーブレットオブジェクトが存在するかどうかを判断し、存在しない場合は作成し、お客様の要求に基づいてサーブレットRequest、サーブレットResponseオブジェクトを作成し、サーブレットオブジェクトのサービスメソッドを呼び出します. サーブレットのクラスファイルが更新された後、サーブレットが再作成され、サーブレットコンテナは起動時に自動的にサーブレットが作成する、これはweb.xmlファイルでサーブレットに設定されているプロパティによって決まります.同じタイプのサーブレットオブジェクトがサーブレットコンテナに単一の例として存在することもわかります.
  • 応答サービス/サービス()
  • 破棄/destroy()サーブレットコンテナ停止:サーブレットコンテナはサーブレットオブジェクトのdestroyメソッドを呼び出してリソースを解放します.サーブレットコンテナの更新または再起動:サーブレットオブジェクトも再更新する必要があるため、destroyを確認してから再作成します.

  • サーブレットコンテナがどのサーブレットオブジェクトを作成するかを知るには--xmlプロファイル
    <servlet>
    
    <servlet-name>action<servlet-name>
    
    <servlet-class>org.apache.struts.action.ActionServletservlet-class>
    
    <init-param>
    
    <param-name>configparam-name>
    
    <param-value>/WEB-INF/struts-config.xmlparam-value>
    
    init-param>
    
    <init-param>
    
    <param-name>detailparam-name>
    
    <param-value>2param-value>
    
    init-param>
    
    <init-param>
    
    <param-name>debugparam-name>
    
    <param-value>2param-value>
    
    init-param>
    
    <load-on-startup>2load-on-startup>
    
    servlet>
    
    <servlet-mapping>
    
    <servlet-name>actionservlet-name>
    
    <url-pattern>*.dourl-pattern>
    
    servlet-mapping>
    

    サーブレットコンテナは開始時にwebに対して.xml解析init-param:サーブレットコンフィグオブジェクトの作成を構成し、受信用init()方法サーブレットオブジェクトservlet-nameを作成する方法サーブレットオブジェクトの名前servlet-class:サーブレットオブジェクトを作成するために呼び出されるクラスparam-name:パラメータ名param-value:パラメータ値load-on-startup:サーブレットコンテナ起動時にサーブレットオブジェクトをロードする優先順位servlet-mapping/servlet-name:servlet内のservlet-name構成セクションの内容に対応するurl-pattern:このServletが応答するURIアドレス
    付:面接問題
    Httpプロトコルとは?Httpプロトコル(ハイパーテキスト転送プロトコル)は、クライアントとサーバに対してハイパーテキスト転送を行う際のルール設定であり、クライアントからサービス側に要求を出すことを規定し、サービス側はクライアントに戻って応答する.ここで、サービス側からの要求は全て要求行(要求方式、Httpプロトコルバージョン)、要求ヘッダ(クライアント情報条件)、要求体(クライアントが発行する要求パラメータ(post方式)であり、クライアントが発行する応答も同様に応答行(プロトコルバージョン、ステータスコード)、応答ヘッダ(サービス側情報条件)、要求体(htmlページ/JSONなどの応答内容)に分けられる.
    プログラマはdestroyメソッドをアクティブに呼び出してservletオブジェクトを破棄できますか?答え:いいえ、これらの方法はtomcatコンテナで呼び出されました.