问题:
使用getServletContext().getRealPath("/")获取地址得到\eclipseworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps,而不是对应项目目录
分析:
该目录为eclipse中发布工程的临时目录。
解决:
服务器选项卡。右键单击Servlet容器(Tomcat 7在你的情况中)和开放(F3是快捷为eclipse)。
你可以在这里指定部署的位置。
如果,修改项为灰色disable。则先进行以下步骤:
- 右键单击我的tomcat服务器在“服务器”视图中,选择“属性…”
- 在“通用”面板中,单击“切换位置”按钮
- ”的位置(工作空间元数据):“应该已经被其他东西所取代。
- 总览屏幕为服务器开放。
右键单击该服务器,然后添加/删除,然后在配置面板中删除任何项目。然后右键单击服务器,并选择“干净……“从上下文菜单。然后将启用服务器位置选项。
附:
getRealPath
String getRealPath(String path)
返回一个字符串,其中包含真正的路径为一个给定的虚拟路径。例如,路径“/索引。html”返回服务器的文件系统上的绝对文件路径将由请求”http://host/contextPath/index。html”,ServletContext contextPath哪里的上下文路径。
真正的路径将适当的形式返回servlet容器的计算机和操作系统上运行时,包括适当的路径分隔符。这个方法返回null如果servlet容器不能翻译真正的虚拟路径路径由于任何原因(如当内容是可用的。战争档案)。
Parameters:
路径——一个字符串指定虚拟路径
Returns:
字符串指定实际的路径,或null如果翻译不能执行
eg. getServletContext().getRealPath("/WebContent/template");
点关注,不迷路
文章每周持续更新,可以微信搜索「 十分钟学编程 」第一时间阅读和催更,如果这个文章写得还不错,觉得有点东西的话 ~求点赞👍 求关注❤️ 求分享❤️
各位的支持和认可,就是我创作的最大动力,我们下篇文章见!