当前位置: 代码迷 >> Web前端 >> properties-java web项目自定义配置文件途径
  详细解决方案

properties-java web项目自定义配置文件途径

热度:987   发布时间:2012-07-04 19:33:54.0
properties--java web项目自定义配置文件路径
InputStream in = this.getClass().getResourceAsStream("路径名");   
        //一般为“/”相对classpath的路径,这样就不需要读取绝对路径了。


在java web项目中添加配置文件,满足数据库配置参数以及其他自定义参数存放,可自己写一个配置文件**.properties,把项目所需的自定义配置信息以名值对的形式写入文件。把它放到项目的源文件包src下,部署时IDE会自动将其复制到相应路径。 

java web项目未开启服务(有没有部署到tomcat中一样)使用this.getClass().getResource("/")得到Url对象,打印如下: 
file:/F:/zgh/myworkspace/collection/WebRoot/WEB-INF/classes/ 

此路径为java web项目源路径。 

部署到tomcat中的java web项目开启服务后使用this.getClass().getResource("/")得到Url对象,打印如下: 
file:/F:/zgh/software/apache-tomcat-6.0.14/webapps/collection/WEB-INF/classes/ 

然后调用toString().substring(5)获得绝对路径的前半部分,加上相对路径,如 
conf/send.properties 

拼接成配置文件的绝对路径: 
/F:/zgh/software/apache-tomcat-6.0.14/webapps/collection/WEB-INF/classes/conf/send.properties 


java application项目使用this.getClass().getResource("/")得到Url对象,打印如下: 
file:/F:/zgh/myworkspace/javaeye/bin/ 

此路径为java application项目的class文件的根路径。 


注意:未开启tomcat web服务时打印的不是上面的路径,是你的项目源文件的classes路径。 


在Servlet中获取项目的根路径: 
下面是Struts2的获取方法,获取的是项目根目录下的“uploadsrc”的绝对路径,不过已经标示过时了。 
import org.apache.struts2.ServletActionContext; 
String realPath=ServletActionContext.getRequest().getRealPath("/uploadsrc").replaceAll("\\\\", "/"); 

下面这个是HttpServletRequest对象的获取项目路径,未标示为过时。在Windows 系统获取的是该系统的路径符,与linux的不一样,可以将分割符替换成“/”就行了。 
import javax.servlet.http.HttpServletRequest; 
request.getSession().getServletContext().getRealPath("/"); 


整理自网络,http://www.iteye.com/topic/98819
  相关解决方案