是否可以从 JSF 应用程序中找出部署路径?

还有一个问题(如果前一个问题的答案是正确的):在那里存储一些上传的文件是否合法?

最佳答案



不是直接,你需要从 ServletContext 中获取 ExternalContext 如下:

ServletContext servletContext = (ServletContext) externalContext.getContext();

它反过来提供了众所周知的 dubious getRealPath() 方法。
String webContentRoot = servletContext.getRealPath("/");

如果您已经使用 JSF 2.0,则可以改用 ExternalContext#getRealPath()



你可以这样做。您只需要考虑在重新部署应用程序时它们都会丢失,原因很简单,原始 WAR 中不包含这些文件。

如果您想拥有更多永久存储空间,请考虑将其存储在 Web 应用程序之外的固定路径中,例如/var/webapp/upload 左右。另一种方法是将它们存储在数据库中,这将增加可移植性,但请记住在文件内容中存储一些元数据(名称、内容类型、上次修改的时间戳等),以便您可以索引/搜索/缓存一些内容上。

关于java - 如何在 JSF 应用程序中获取部署目录路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3441747/

10-11 22:20
查看更多