web.xml ファイルの内容の詳細な分析

Y2J
リリース: 2017-04-24 10:49:06
オリジナル
1952 人が閲覧しました

web.xml ファイルの詳細な説明

はじめに: web.xml は主に一般的な Web プロジェクトで使用され、Web プロジェクトの開発を容易にします。 web.xml は主にフィルター、リスナー、サーブレットなどの設定に使用されます。ただし、web.xml は必須ではないことに注意してください。Web プロジェクトには web.xml ファイルは必要ありません。

1. ウェブを読み込むプロセス。つまり、フィルターはリスナーの前に書き込まれるため、フィルターは最初にロードされません。 WEB コンテナのロード順序は次のとおりです。 ServletContext -> context-param -> servletこれらの要素はファイル内のどこにでも設定できます。

読み込みプロセスのシーケンスは次のとおりです:

WEB プロジェクトを開始すると、WEB コンテナはその設定ファイル web.xml を読み取り、 ノードと を読み取ります。 。

  1. 至急、ServletContext (サーブレット コンテキスト) を作成してください。この Web プロジェクトのすべての部分がこのコンテキストを共有します。

  2. コンテナは をキーと値のペアに変換し、servletContext に渡します。

  3. コンテナはにクラスインスタンスを作成し、リスナーを作成します。

  4. 2. Web の詳細な説明。ルート要素 は、この web.xml で使用されるスキーマ ファイルを示す必要があります。他のすべての要素は に配置されます。

  5. <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" 
        xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
            http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"></web-app>
    ログイン後にコピー

2. Web アプリケーションのアイコン Web アプリケーションを表すために IDE および GUI ツールで使用される大小のアイコンを示します。

rreee&lt; display-name&gt; description

これに関連する説明テキストを与えます

<icon>
    <small-icon>/images/app_small.gif</small-icon>
    <large-icon>/images/app_large.gif</large-icon></icon>
ログイン後にコピー

5. アプリケーション全体の初期化パラメータを宣言します。これは、キーと値のペア、つまりアプリケーション コンテキスト情報を ServletContext に提供するために使用されます。リスナー、フィルターなどは、初期化中にこれらのコンテキストの情報を使用します。サーブレットでは、getServletContext().getInitParameter("context/param") を通じて取得できます。

<display-name>Tomcat Example</display-name>
ログイン後にコピー

6. フィルタ

javaxs.servlet.Filter インターフェースを実装するクラスに名前を関連付けます。

<disciption>Tomcat Example servlets and JSP pages.</disciption>
ログイン後にコピー

7. リスナー

<context-param>
    <param-name>ContextParameter</para-name>
    <param-value>test</param-value>
    <description>It is a test parameter.</description></context-param>
ログイン後にコピー

8. 主に以下のサブ要素を持ちます。

サーブレットの名前を指定します

< ;jsp-file> Web サイト内の JSP ページの完全なパスを指定します

複数の init-params が存在する可能性があります。サーブレットクラスの getInitParamenter(String name) メソッドを通じて初期化パラメータにアクセスします

  • 指定当Web应用启动时,装载Servlet的次序。当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。

  • 用来定义servlet所对应的URL,包含两个子元素

  • 指定servlet的名称

  • 指定servlet所对应的URL

  • <!-- 基本配置 --><servlet>
        <servlet-name>snoop</servlet-name>
        <servlet-class>SnoopServlet</servlet-class></servlet><servlet-mapping>
        <servlet-name>snoop</servlet-name>
        <url-pattern>/snoop</url-pattern></servlet-mapping><!-- 高级配置 --><servlet>
        <servlet-name>snoop</servlet-name>
        <servlet-class>SnoopServlet</servlet-class>
        <init-param>
            <param-name>foo</param-name>
            <param-value>bar</param-value>
        </init-param>
        <run-as>
            <description>Security role for anonymous access</description>
            <role-name>tomcat</role-name>
        </run-as></servlet><servlet-mapping>
        <servlet-name>snoop</servlet-name>
        <url-pattern>/snoop</url-pattern></servlet-mapping>
    ログイン後にコピー

      9、会话超时配置

      单位为分钟。

    <session-config>
        <session-timeout>120</session-timeout></session-config>
    ログイン後にコピー

      10、

    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html</mime-type></mime-mapping>
    ログイン後にコピー

      11、欢迎文件页

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file></welcome-file-list>
    ログイン後にコピー

      12、错误页面

    <!-- 1、通过错误码来配置error-page。当系统发生×××错误时,跳转到错误处理页面。 --><error-page>
        <error-code>404</error-code>
        <location>/NotFound.jsp</location></error-page><!-- 2、通过异常的类型配置error-page。当系统发生java.lang.NullException(即空指针异常)时,跳转到错误处理页面。 --><error-page>
        <exception-type>java.lang.NullException</exception-type>
        <location>/error.jsp</location></error-page>
    ログイン後にコピー

      13、设置jsp

       包括  和  两个子元素。其中 元素在JSP 1.2 时就已经存在;而 是JSP 2.0 新增的元素。

       元素主要有八个子元素,它们分别为:

    • :设定的说明 

    • :设定名称 

    • :设定值所影响的范围,如: /CH2 或 /*.jsp

    • :若为 true,表示不支持 EL 语法 

    • :若为 true,表示不支持 <% scripting %>语法 

    • :设定 JSP 网页的编码 

    • :设置 JSP 网页的抬头,扩展名为 .jspf

    • :设置 JSP 网页的结尾,扩展名为 .jspf

    <jsp-config>
        <taglib>
            <taglib-uri>Taglib</taglib-uri>
            <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
        </taglib>
        <jsp-property-group>
            <description>Special property group for JSP Configuration JSP example.</description>
            <display-name>JSPConfiguration</display-name>
            <url-pattern>/jsp/* </url-pattern>
            <el-ignored>true</el-ignored>
            <page-encoding>GB2312</page-encoding>
            <scripting-invalid>true</scripting-invalid>
            <include-prelude>/include/prelude.jspf</include-prelude>
            <include-coda>/include/coda.jspf</include-coda>
        </jsp-property-group></jsp-config>
    ログイン後にコピー

      对于Web 应用程式来说,Scriptlet 是个不乐意被见到的东西,因为它会使得HTML 与Java 程式码交相混杂,对于程式的维护来说相当的麻烦,必要的时候,可以在web.xml 中加上 标签,设定所有的JSP 网页都不可以使用Scriptlet。

    3、Mapping规则

      当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的应用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了。

      其匹配规则和顺序如下:

    1. 精确路径匹配。例子:比如servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先 进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的servlet了。

    2. 最長パスのマッチング。例: servletA の URL パターンは /test/*、servletB の URL パターンは /test/a/* です。 http://localhost/test/a にアクセスすると、コンテナは最も長いサーブレットを選択します。パスに一致します。ここでは servletB です。

    3. 拡張子の一致。URL の最後のセグメントに拡張子が含まれている場合、コンテナは拡張子に基づいて適切なサーブレットを選択します。例: servletA の URL パターン: *.action

    「/」で始まり「/*」で終わるものはパスマッピングに使用され、プレフィックス「*.」で始まるものはパスマッピングに使用されます。拡張子マッピング: では、「/*.action」のような一見通常の一致を定義するのはなぜ間違っているのでしょうか? この一致はパス マッピングと拡張子マッピングの両方に属するため、コンテナは判断できないからです。

    以上がweb.xml ファイルの内容の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!