javaweb中的java文件会在服务器中生成class文件,比如tomcat目录下的webapps目录下,放你的javaweb项目,在项目中有个WEB-INF目录,里面有一个classes文件夹,里面放的都是对源码进行编译后生成的class文件
读取配置文件 , xxxproperties放在webroot/WEB-INF/classes/目录下
首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:
(1)InputStream inputStream = ThreadcurrentThread()getContextClassLoader()getResourceAsStream("xxproperties");
(2) InputStream inputStream =
thisgetClass() getClassLoader()getResourceAsStream( "xxproperties" );
调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,
而后在类类型上调用 getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父 子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就 是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载资源。
(3) 然后加载配置文件,读取属性值
Properties prop = new Properties();
propload(input);
String value = propgetProperty("PropertyName");
inputclose();
如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory();dififsetSizeThreshold(321024);dififsetRepository(new File(tmpDir)); //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif);
sfusetSizeMax(MAX_SIZE);
List fileList = sfuparseRequest(request);
if ( fileList == null || fileListsize() == 0) { throw new Exception("
导入文件不存在,请检
查");} else { File upLoadFile = null; Iterator fileIterator = fileListiterator();
//得到所有上传的文
件 while (fileIteratorhasNext()) { FileItem fileItem = (FileItem)fileIteratornext(); //
取得上传文件
名 if (fileItemgetContentType() == null) { } else {
//
此为路
径 String path = fileItemgetName(); String t_ext = pathsubstring(pathlastIndexOf("") + 1); //
根据系统时间生成上传后保存的文件
名 String prefix = StringvalueOf(SystemcurrentTimeMillis()); //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下 String u_name = tmpDir + Fileseparator + prefix + "" + t_ext; //
开始保存文
件 upLoadFile = new File(u_name); fileItemwrite(upLoadFile); } } }
public class $ {
public static void main(String[] args) {
String path = SystemgetProperty("userdir") + "/src/html/emailhtml";
Systemoutprintln(path);
}
}
动态获取路径
以上就是关于java web怎么获取class类的编译路径全部的内容,包括:java web怎么获取class类的编译路径、java web工程,读取配置文件路径问题、java web项目java后台获取前台js上传文件的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)