javaweb自定义文件
在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("/");