java - Tomcat 将另一个 xml 文件包含到 web.xml

标签 java xml jsp tomcat servlets

大家好,

因为我的 web.xml 中有很多 servlet 映射,我想知道我是否真的可以将所有映射存储到单独的文件中,然后将其包含到 web.xml 中。

servervlet-mapping.xml

<servlet>
    <servlet-name>red</servlet-name>
    <servlet-class>Test.Red</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>red</servlet-name>
    <url-pattern>/blue</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>blue</servlet-name>
    <servlet-class>Test.Blue</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>blue</servlet-name>
    <url-pattern>/blue</url-pattern>
</servlet-mapping>

web.xml

<include file="servlet_mapping.xml"/>

这样就可以在 struts.xml 中加载 xml 文件。 (不确定在 web.xml 中是否可行)

这样的事情可能吗?或者还有其他方法可以让它发挥作用吗?

(为我糟糕的英语道歉)

提前致谢, 亚历克斯

最佳答案

Servlet 3.0 引入了 web 片段的概念,它解决了关于将 web.xml 拆分为多个文件的问题。这些片段可以包含部分(或全部)web 部署描述符,包括一个 META-INF/web-fragment.xml

<web-fragment metadata-complete="true" version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd">
  <name>fragment1</name>
    <servlet>
        <servlet-name>red</servlet-name>
        <servlet-class>Test.Red</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>red</servlet-name>
        <url-pattern>/blue</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>blue</servlet-name>
        <servlet-class>Test.Blue</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>blue</servlet-name>
        <url-pattern>/blue</url-pattern>
    </servlet-mapping>
</web-fragment>

在 web.xml 中

...
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>MyWelcomePage</servlet-name>
        <servlet-class>MyWelcomePage</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyWelcomePage</servlet-name>
        <url-pattern>/MyWelcomePage/*</url-pattern>
    </servlet-mapping>    
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <absolute-ordering>
         <name>fragment1</name>
    </absolute-ordering>
</web-app>

关于java - Tomcat 将另一个 xml 文件包含到 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25928486/

相关文章:

java - JButton 图标有点偏离

java - 设置位图的旋转和位置

java - 如何使表格行适合屏幕宽度?

java - 无法解析类型 java.lang.Charsequence。它是从所需的 .class 文件间接引用的

java - 使用 URLConnection 访问时连接超时

java - 如何在策略文件中设置java.awt.awtpermission?

xml - 将子元素转换为父元素的属性

Eclipse WTP 中的 XML 目录 : How do you reference a standalone XML schema

java - JSP EL + jQuery "$.ajax()"问题

java - 无法获取连接,数据源无效 : "java.sql.SQLException: No suitable driver found for dataSource"