在不使用上下文的情况下访问 Webapp 文件夹中的文件
Posted
技术标签:
【中文标题】在不使用上下文的情况下访问 Webapp 文件夹中的文件【英文标题】:Access File in Webapp Folder Without Using Context 【发布时间】:2020-01-18 19:41:39 【问题描述】:我正在尝试访问我的 Maven 项目中的 .jsp 文件。该文件夹的文件路径如下:
projectMainFolder ▸ src ▸ main ▸ webapp ▸ px ▸ basefolder
▸ domain ▸ subdomain ▸ oco ▸ file.jsp
我尝试访问的文件位于以下文件路径中:
projectMainFolder ▸ src ▸ main ▸ java ▸ com ▸ websiteName
▸ sameNameAsProjectMainFolder ▸ helper ▸ file.java
我尝试过使用getServletContext(/src/.../oco/file.jsp).getResourceAsStream()
和其他使用servlet 上下文的方法,但它们总是以null 结束。我使用了错误的父目录吗?我尝试从 src、webapp、main 和 px 开始。 (当然,省略号并不是我实际传入的内容,而只是所有中间文件夹的占位符。)
现在,我只想像这样存储文件:
File resource = new File(/src/.../oco/file.jsp);
但是资源总是空的。
编辑:
如果我为项目提供文件的确切路径(从 /Users/ 目录开始),它可以工作,但我当然打算将其部署为 webapp,所以这不是一个选项,但它至少证明了唯一的问题是我如何设置文件路径。
【问题讨论】:
你的目录全搞砸了。在您的项目中,根目录位于 webapp 中。将您的 jsp 文件放在 webapp 文件夹中。然后你可以这样做:File resource = new File(file.jsp);
- 在移动文件和修改 web.xml 之后,你可能需要重新启动和清理项目+服务器
【参考方案1】:
webapp
目录是公共资源的根目录,尝试访问/px/basefolder/domain/subdomain/oco/file.jsp
【讨论】:
以上是关于在不使用上下文的情况下访问 Webapp 文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章
将 webapp 从 Eclipse 部署到 Tomcat 根上下文
有没有办法在不使用画布 API 的情况下从图像文件中获取二进制数据?