如何在web.xml文件中引入其他的xml文件(拆分web.xml)

来源:互联网 发布:linux创建swap文件 编辑:程序博客网 时间:2024/05/16 15:07

转载自: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应该也管用,其他版本没试过。 

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


0 0
原创粉丝点击