在servlet 中使用 request.getSession().getServletContext().getRealPath("upload/" ); 获取不到 tomcat 服务器目录

今天恰好有个上传文件的练习需要使用 request.getSession().getServletContext().getRealPath("upload/" ); 获取上传到服务器上的文件路径 C:\\apache-tomcat-7.0.47\\webapps\\CommonhelloWorldServlet \\upload 的目录,结果获取到的是 D:\eclipseWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\CommonhelloWorldServlet ,并不是运行时的工程存放目录,得到的反而是工作空间的项目存放路径,我觉得应该是配置的问题,经过百度之后,果然得出猜想没错,步骤如下:

1、先在编辑器界面将现有 servlet 删除,再双击旋转 tomcat 7.0 版本新建 servlet,结果如下图:


发现配置如下图,解释了为啥获取到工作空间的路径了:


修改如下:


运行代码,效果如下,正常了:



出处:https://blog.csdn.net/inite/article/details/75577970


关于request.getServletContext().getRealPath("")和request.getServletContext().getRealPath("/"),很早以前就遇到了。但是一直没有不晓得区别,刚过测试了下,request.getServletContext().getRealPath("/")获取到的是当前绝对项目路劲并且有/号。而那个""就是没得/号的。如下图:


你可能感兴趣的:(java,web)