在开发过程中涉及一些文件上传的操作,如果不是那种集群或者分布式的环境的话,一般都是直接把文件存储在当前的服务器中,这就需要获得当前项目在服务器的路径了。下面主要讲解两种方式:
方式一:有request对象的(Servlet,SpringMVC的Controller都有这个对象)
String realPath = request.getServletContext().getRealPath("/");
我们在代码里把这个路径打印下看看:
输出的结果:
这个是eclipse跑tomcat的项目所在地址(好久没用eclipse了,感觉不会用了),通过request得到这个路径,我们就可以把文件上传到项目里了。
小编给大家推荐一个学习氛围超好的地方,java交流:一四四九零一零七六!适合在校大学生,小白,想转行,想通过这个找工作的加入。里面资料都是大家贡献的,几百个G了!什么PDF,零基础入门,都是有视频加源码的。而已里面好多学生,工作了的,遇到bug了可以寻求帮助,遇到解决不了的问题也可以和大家交流,从而解决自己多时的问题。
方式二:无request,常出现在定时任务中
如果写一个定时任务,每月末从数据库中生产一份Excel(导出Excel请查看我前篇文章),然后通知用户来获取,这里没有request,无法通过上面的方法获得项目的路径,这时候可以通过以下方法获得:
String path = this.getClass().getClassLoader().getResource("/").getPath();
我们在代码里跑一下看看:
输出结果:
这个就是编译后的class文件所在的目录,然后通过../../就可以获得项目的路径了。这里需要说明下的是,这种方法是不能直接在main方法里使用的:
领取专属 10元无门槛券
私享最新 技术干货