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

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

热度:142   发布时间:2012-09-20 09:36:50.0
java web项目自定义配置文件路径
在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("/");




1 楼 riderarcher 2011-06-23  
是的,我也遇到了这样的问题。绝对路径就是
url.getPath()+filename,感谢您的指导。
2 楼 ahomeeye 2011-07-08  
客气了。不能说是指导,最多就是个分享。很多我也是不懂到网上搜集的,外加一些自己实践得出的经验。我觉得到网上找别人分享的知识,自己学到了,要回馈一下,让大家共同进步,这样我很开心。
3 楼 卖火柴的老特工 2011-10-11  
学过
  相关解决方案