その後、我々の知識にいくつかの並べ替えを知っている必要があり、我々はすべて、この設定ファイルは、毎日の仕事であることを知って、バックエンドのWebエンジニアを行い、web.xmlのを免れることはできません。
私たちは、Webプロジェクトを開始し、最初のものは、すべての構成情報はい、Webプロジェクト1本当に起動して実行した後、ファイルをweb.xmlファイルをロードすることです。
その後、我々は、構成情報のweb.xmlそれにドアを開けます。
まず、一つは、関係なく、全体としてどのような情報の一種であるコンフィギュレーション・シーケンスのweb.xmlの、私たちの実行順序が順に記述された設定ファイルに従って実行されていないが、自分自身のweb.xmlを持っていることを確認する必要があります実行順序
初期化プロセス:
- Web項目の起動時に、(Tomcatなど)の容器は、2つのノードの<listener>と<コンテックス-PARAM> web.xml構成ファイルを読み込みます。
- その後、コンテナは、このアプリケーションのコンテキスト内でWEBプロジェクト全体で使用することができるのServletContext(コンテキスト)を作成します。
- その後、コンテナはキーと値のペアへとServletContextへ<コンテキストPARAM>に読み込まれます。
- コンテナクラスのインスタンスを作成します。<聞き手> </リスナー>、それがリスナーを作成している(注:リスナーのクラスはカスタムクラスで定義することができますが継承する必要がありますが、なければならないのServletContextListener)。
- クラスリスニングcontextInitialized(ServletContextEventイベント)初期化方法は、この方法でコンテキストPARAMセットevent.getServletContext()。GetInitParameter(「contextConfigLocation」)によって得られた値であってもよい有します。また、このクラスではcontextDestroyed(ServletContextEventイベント)破壊メソッドが存在する必要があります。たとえば、アプリケーションを閉じる前にリソースを解放するために、データベース接続を閉じます。
- コンテキスト-PARAMの値を取得した後、あなたは、いくつかは動作しないことができます。このアクションは、サーブレットのすべてよりも早くなります。今回は、Webプロジェクトが完全に起動する完了していないことに注意してください。
同じ順序で行われるに対応するマッピング情報の種類に応じて行われます
実行XMLの順序に従って、ラベルの順序を実行するのは、順番に見ていきましょうことを意味しているものです
起動時に注目し、そのWebプロジェクトワース、コンテナ(Tomcatは)ドメインオブジェクトのServletContextを作成し、我々は簡単に説明します
ServletContext
公式の説明は、サーブレットコンテキストは、活性化されると、各サーバーにServletContextオブジェクトであるオブジェクトを作成するプロジェクトを与えることで、オブジェクトがグローバルに一意です。そして、サーブレットを共有内のプロジェクト全体このオブジェクト。
まず、あなたがドメインオブジェクトを教えて与える、急いでいない、のServletContextはドメインオブジェクトである、覚えてみましょう
図では、私はあなたがオブジェクトがどのような役割として機能するようにしているこのドメインで理解できると信じて
だから、ドメインオブジェクトを正確に何であります
ストレージサーバーのドメインオブジェクトは、データを異なる動的(サーブレット)の間の資源の移転と共有のためのメモリ内に作成されます
任意のドメインオブジェクトは、次の3つの方法があります
SetAttributeの(名前、値) |
オブジェクト内のフィールドにデータを追加、キー付加価値時間の形で添加されます |
getAttribute(名); |
指定されたキーに応じて対象領域内のデータを読みます |
RemoveAttribute(名) |
指定されたキーフィールドを持つオブジェクトの内部からデータを削除します。 |
私は、子供の靴の多くは、コードが有効であると学んできた私たちは、ドメインオブジェクトにデータを渡す際に、ドメインオブジェクトのものかどうか、SetAttributeのこれらの方法は、頻繁に使用される果たし、ここでと考えています。
それでは我々は見つけるために来ることができます
コンテキスト-PARAM
処置:この要素は、コンテキスト初期化パラメータ宣言アプリケーション(全体のWebアイテム)内で使用されています。
PARAM値とそこでのParamの名
PARAM名パラメータ名のコンテキストを設定します。名前は一意である必要があります
PARAM値の名をパラメータ設定
読み込みが完了した後、我々はのServletContextを手渡し、キーと値のペアにこの情報を変換しています
順序によると、私たちはその次の知っている必要がリスナーを
リスナーは、その名のとおり、当社のWebアクティビティを監視するために使用され、これはよく理解され、リスナーに変換し、サーブレットは8人のリスナーの合計を提供しました
三つのドメインオブジェクトが作成および破棄されているリスナーを
オブジェクトの種類 |
対応するリスナー |
ServletContext |
ServletContextListener |
HttpSessionの |
HttpSessionListener |
HttpServletRequestの |
HttpServletRequestListener |
リスナーオブジェクトのプロパティが3人のリスナーを変更する(プロパティがプロパティを削除、追加するには、財産の交換)
オブジェクトの種類 |
対応するリスナー |
ServletContext |
ServletContextAttributeListener |
HttpServletRequestの |
ServletRequestAttributeListener |
HttpSessionの |
HttpSessionAttributeListenerに |
(不動態化と活性化のバインドを解除し、結合)状態のJavaBean HttpSessionオブジェクトの変化を監視します
オブジェクトの種類 |
対応するリスナー |
HttpSessionの |
HttpSessionBindingListenerを(バインド、アンバインド) |
HttpSessionの |
HttpSessionActivationListener(不動態化および活性化) |
その後、ここに私が私たちの中に深さの導入に加えて、ブログを書きます、詳細な内容を聞きます
次程度であるフィルタ、である、フィルタ、定義により、フィルタは、必要な情報の一部をフィルタリングするために使用されます
フィルタ
Webフィルタのデータは実際には、サーバによって処理された情報、相手に再配信をオーバー提出されます。あなたは中間処理の代わりとして理解することができます。
彼らは多くの場合、要求を傍受するために使用され、応答インターセプトフィルタリングされています
通过上图,我们可以更直观地了解到过滤器的工作角色,值得我们注意的是,过滤器可能会有多个,经过过滤器一过滤完之后,还需要通过滤器二进行过滤处理,因为每个过滤器都有自己特定的过滤功能
关于多个过滤器的执行顺序,我们请求到达Servlet之间是可以经过多个过滤器的,这些过滤器的执行顺序是依赖于<filter-mapping>里面配置的顺序。
servlet
servlet全称Java Servlet,是用Java编写的服务端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
在web.xml这里主要是将你所写的servlet对应的类配置到当中去,具体的servlet的详解可以看我关于servlet详解的文章