在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,感谢您的指导。
url.getPath()+filename,感谢您的指导。
2 楼
ahomeeye
2011-07-08
客气了。不能说是指导,最多就是个分享。很多我也是不懂到网上搜集的,外加一些自己实践得出的经验。我觉得到网上找别人分享的知识,自己学到了,要回馈一下,让大家共同进步,这样我很开心。
3 楼
卖火柴的老特工
2011-10-11
学过