java中xml配置文件异同总结 (一)

2014-11-24 10:24:23 · 作者: · 浏览: 0

java中默认的一个web项目中会有两个xml文件,一个是sys-config.xml,位于src跟目录下;一个是web层的WEB-INF下的web.xml。

两个配置文件有什么区别?

故名思议:sys-config.xml用于配置系统中的基本参数,通常将数据库访问这些数据放入到这里。另外,还可以在src目录下,建立一个新的xml文件,用于javaBean的反射。如,新建一个beanConfig.xml文件配合,工厂+配置文件+反射的设计模式解耦。

web.xml文件则是记录一些application、session、filter、servlet、error等这类的配置。下面是两类配置文件的示例:

sys-config.xml:


[html]
< xml version="1.0" encoding="UTF-8" >


oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:bjpowern
drp1
drp1


< xml version="1.0" encoding="UTF-8" >


oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:bjpowern
drp1
drp1



beanConfig.xml:


[html]
< xml version="1.0" encoding="UTF-8" >







< xml version="1.0" encoding="UTF-8" >








web.xml:

所有的节点都在这里配置:


[html]
< xml version="1.0" encoding="UTF-8" >
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">
.........

< xml version="1.0" encoding="UTF-8" >
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">
.........
1、配置servlet:因为涉及到jsp的跳转访问,所以有节点


[html]

ShowItemUploadServlet
com.bjpowernode.drp.basedata.web.ShowItemUploadServlet



ShowItemUploadServlet
/servlet/item/ShowItemUploadServlet


ShowItemUploadServlet
com.bjpowernode.drp.basedata.web.ShowItemUploadServlet


ShowItemUploadServlet
/servlet/item/ShowItemUploadServlet
所有的节点的作用是将servlet-name和sevlet-class包装关联;节点的作用是将关联,一个完整的servlet是通过映射。

可以设置虚拟路径,比如这里的/servlet/item就是为了给系统划分模块,人为添加的,访问的时候需要与之匹配。

另外,我们可以在servlet中配置一些参数,在该servlet初始化的时候,来访问这些数据。如,可以这样配置一个带有默认page-size的关于分页的servlet。这个参数的作用范围只限于该servlet。


[html]

SearchItemServlet
com.bjpowernode.drp.basedata.web.SearchItemServlet


page-size
3



SearchItemServlet
com.bjpowernode.drp.basedata.web.SearchItemServlet


page-size
3



在SearchItemServlet.java中,可以这样来访问:


[java]
int pageSize = Integer.parseInt(this.getServletConfig().getInitParameter("page-size"));

int pageSize = Integer.parseInt(this.getServletConfig().getInitParameter("page-size"));
在tomcat启动的时候,能否控制servlet的初始化顺序呢?答案是:通过节点。


[html]

FileUploadServlet
com.bjpowernode.drp.basedata.web.FileUploadServlet
10


FileUploadServlet
com.bjpowernode.drp.basedata.web.FileUploadServlet
10
这里须是正整数,数值越小,启动顺序越早。

2、filter过滤器的配置:

一个系统可以有多个filter,他是一个链,按照顺序执行,最后到你请求的资源servlet或jsp。如,配置系统中所有的jsp和servlet统一的编码格式:


[html]

CharsetEncodingFilter
com.bjpowernode.drp.util.filter.CharsetEncodingFilter

encoding
GBK




CharsetEncodingFilter
*.jsp



CharsetEncodingFilter
/servlet/*


CharsetEncodingFilter
com.bjpowernode.drp.util.filter.CharsetEncodingFilter

encoding
GBK




CharsetEncodingFilter
*.jsp



CharsetEncodingFilter
/servlet/*

CharsetEncodingFilter类对编码格式的实现:

[java]
/**
* 采用Filter统一处