转载自:http://www.blogjava.net/jiangjf/archive/2009/04/09/264685.html

最近在做一个Servlet+javaBean的项目,服务器用的是tomcat。因此,所有的页面都是servlet请求,而且很多,需要在web.xml文件中进行配置。导致web.xml文件特别大,而且这个系统以后会做大,并且会出现系统拆分,为了便于以后拆分,于是想到将web.xml文件中的servlet和servlet-mapping能够从web.xml脱离出来,用其他xml文件保存然后在web.xml文件中引入这些文件,就想类似引入struts.config一样。

        在网上找了半天也没找到,还是学哥厉害,找到了答案,在此向他致敬。

        

        具体做法如下:

            1,按模块将servelet从web.xml中拷贝出来,放到一个test.xml中,如test.xml中内容如下:

                <servlet>

                       <servlet-name>testA</servlet-name>

                       <servlet-class>TestA</servlet-class>

              </servlet>

              <servlet-mapping>

                    <servlet-name>testA</servlet-name>

                    <url-pattern>/testA.do</url-pattern>

              </servlet-mapping>

            2,在我的WEB-INF/web.xml中引入test.xml

                <!DOCTYPE web-app

                    [<!ENTITY test SYSTEM 
"file:///D:/eclipse/workspace/Test/WebRoot/WEB-INF/test.xml">

                    <!ENTITY admin SYSTEM  "admin.xml">]>  

                <web-app version="2.5" 

                     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_5.xsd" 

                >    

                &test;

                &admin;

        

            以上修改即可,web.xml会在开头引入你的test.xml.然后  &test;表示你放的地方。 

如果设定的是相当路径,可以如此设定:

            如果test.xml和web.xml在同一个文件夹,则   [<!ENTITY test SYSTEM 
"test.xml">]

            如果test.xml在web.xml所在文件夹的ccc文件夹中,则  [<!ENTITY test SYSTEM 
"ccc/test.xml">]





        我的servlet是2.5,2.4应该也管用,其他版本没试过。 



        这样,我可以在系统开始设计时,将各个模块分开,便于以后系统拆分。


如何在web.xml文件中引入其他的xml文件(拆分web.xml)的更多相关文章

  1. 如何在 vue 2.0+ 中引入全局的stylus文件,且能正常

    由于stylus在引用时,不能像一般的css文件直接在main.js中引用,就算引用了也会只能使用转换后的css,不能使用里面的函数,方法等,原因可能是:在这里引入会被直接编译成css,不能在别的模板 ...

  2. 由js文件中引入另外的js文件想到的

    1. html中,使用<script src="../static/js/xxx.js"></script>引入js文件.   2. 在js文件中,引入js ...

  3. 如何在一个js文件中引入另外的js文件

    例如想要在a.js中引用b.js.c.js和d.js document.write("<script language='javascript' src='b.js'></ ...

  4. 使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。

    今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这 ...

  5. 关于pom.xml文件中引入net.sf.json-lib出错问题

    关于pom.xml文件中引入net.sf.json-lib出错问题 在项目中引入以下依赖时一直报错 <dependency> <groupId>net.sf.json-lib& ...

  6. 解决在html中引入font-awesome的css文件后, 图标显示不出来

    今天小颖在做项目时,需要在html文件中引入font-awesome.min.css,但是引入后: 以前小颖在用font-awesome库里的图标时,都是直接从node中下包,然后在main.js中引 ...

  7. 【jsp】怎么在jsp文件中引入静态文件(.js .css)

    如果在jsp文件中引入静态文件比如(.js或.css等等),可以在使用 /项目名称/路径 的方式,但是这种方式如果在修改了项目了名称后就显得比较麻烦了.除了之外还许多方式,比如相对路径等等.一般情况下 ...

  8. maven在pom文件中引入了icepdf-core包,pom文件却莫名的报错,说jai_core包missing

    maven在pom文件中引入了icepdf-core包,却莫名的报错,说jai_core包missing,把这个jai_core包引入之后还是一样报错,PS:icepdf-core使用的时候不用引用j ...

  9. JavaScript进阶(二)在一个JS文件中引用另一个JS文件

    在一个JS文件中引用另一个JS文件       转载地址:http://blog.csdn.net/zndxlxm/article/details/7875787 方法一 在调用文件的顶部加入下例代码 ...

随机推荐

  1. 51nod 1179 最大的最大公约数

    1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值.例如:N = ...

  2. [Apio2009][bzoj1179]Atm

    题意:一个n个点m条单向边的图,每个点有权值,给定出发点和p个可以停止的点,你可以随便走一条路径从出发点走到一个可以停止的点,但是每个点的点权只能计算一次,求能得到的最大权值. n,m<=500 ...

  3. Python 中的 if __name__ == '__main__' 该如何理解

    __name__ 表示当前模块名, __main__ 表示正在运行的模块名. if __name__ == '__main__' 这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导 ...

  4. tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例

    tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例 #!/usr/bin/env python # -*- coding: utf-8 ...

  5. 美链BEC合约漏洞技术分析

    这两天币圈链圈被美链BEC智能合约的漏洞导致代币价值几乎归零的事件刷遍朋友圈.这篇文章就来分析下BEC智能合约的漏洞 漏洞攻击交易 我们先来还原下攻击交易,这个交易可以在这个链接查询到. 我截图给大家 ...

  6. Hibernate给表和字段设置前后缀及分隔符

    在<一口一口吃掉Hibernate(一)--使用SchemaExport生成数据表>中介绍了如何生成数据表.但是这只是最基本的.hibernate在生成或者操作数据库时,会受一些限制.比如 ...

  7. ubuntu15.10 opencv3.1 安装配置codeblocks

    安装codeblocks: sudo add-apt-repository ppa:damien-moore/codeblocks-stable // 添加codeblocks的ppa sudo ap ...

  8. 02_Action

    1.action VS Action action:代表一个Struts2的请求 Action:能够处理action请求的类 属性名必须与JavaBeans属性名相同 属性的类型可以是任意类型,从字符 ...

  9. Jmeter(二)_基础元件

    测试计划(Test Plan) 它用来描述一个测试方案,包含与本次性能测试所有相关的功能.也就说本次测试的所有内容是于基于一个计划的. "函数测试模式"复选框,如果被选择,它会使J ...

  10. 深入理解DirectByteBuffer

    介绍 最近在工作中使用到了DirectBuffer来进行临时数据的存放,由于使用的是堆外内存,省去了数据到内核的拷贝,因此效率比用ByteBuffer要高不少.之前看过许多介绍DirectBuffer ...