web.xml ファイルの詳細な説明
はじめに: web.xml は主に一般的な Web プロジェクトで使用され、Web プロジェクトの開発を容易にします。 web.xml は主にフィルター、リスナー、サーブレットなどの設定に使用されます。ただし、web.xml は必須ではないことに注意してください。Web プロジェクトには web.xml ファイルは必要ありません。
1. ウェブを読み込むプロセス。つまり、フィルターはリスナーの前に書き込まれるため、フィルターは最初にロードされません。 WEB コンテナのロード順序は次のとおりです。 ServletContext -> context-param -> servletこれらの要素はファイル内のどこにでも設定できます。
読み込みプロセスのシーケンスは次のとおりです:
WEB プロジェクトを開始すると、WEB コンテナはその設定ファイル web.xml を読み取り、
至急、ServletContext (サーブレット コンテキスト) を作成してください。この Web プロジェクトのすべての部分がこのコンテキストを共有します。
コンテナは
コンテナは
2. Web の詳細な説明。ルート要素
<?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.
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. <display-name>Tomcat Example</display-name>
javaxs.servlet.Filter インターフェースを実装するクラスに名前を関連付けます。 <disciption>Tomcat Example servlets and JSP pages.</disciption>
<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 ページの完全なパスを指定します
<!-- 基本配置 --><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-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 中加上
3、Mapping规则
当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的应用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了。
其匹配规则和顺序如下:
精确路径匹配。例子:比如servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先 进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的servlet了。
最長パスのマッチング。例: servletA の URL パターンは /test/*、servletB の URL パターンは /test/a/* です。 http://localhost/test/a にアクセスすると、コンテナは最も長いサーブレットを選択します。パスに一致します。ここでは servletB です。
拡張子の一致。URL の最後のセグメントに拡張子が含まれている場合、コンテナは拡張子に基づいて適切なサーブレットを選択します。例: servletA の URL パターン: *.action
「/」で始まり「/*」で終わるものはパスマッピングに使用され、プレフィックス「*.」で始まるものはパスマッピングに使用されます。拡張子マッピング: では、「/*.action」のような一見通常の一致を定義するのはなぜ間違っているのでしょうか? この一致はパス マッピングと拡張子マッピングの両方に属するため、コンテナは判断できないからです。
以上がweb.xml ファイルの内容の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。