Java 如何获取JSF托管bean的包路径?

Java 如何获取JSF托管bean的包路径?,java,jsf,Java,Jsf,我正试图上传一个外部图像,我需要将它保存在一个有托管bean的文件夹中。知道我该怎么做吗?用于获取类所在的URL URL beanClassPath = Bean.class.getResource(""); File imageFile = new File(beanClassPath.getPath(), imageFileName); // ... 然而,这通常是一个非常糟糕的想法。如果重新部署webapp,一切都将丢失。而是将图像存储在Web应用程序之外的某个位置的固定路径中,例如/i

我正试图上传一个外部图像,我需要将它保存在一个有托管bean的文件夹中。知道我该怎么做吗?

用于获取类所在的URL

URL beanClassPath = Bean.class.getResource("");
File imageFile = new File(beanClassPath.getPath(), imageFileName);
// ...
然而,这通常是一个非常糟糕的想法。如果重新部署webapp,一切都将丢失。而是将图像存储在Web应用程序之外的某个位置的固定路径中,例如
/images
等等。在Windows环境中,这将自动引用启动Web应用程序的磁盘,例如
c:/images

File imageFile = new File("/images", imageFileName);
// ...

您也可以考虑将它们存储在数据库中,您只需要在其上存储一些元数据,例如原始文件名、内容类型,并且还优选内容长度,并最终创建和最后修改时间戳。您通常使用这些方法获得的信息。无论何时,只要您想将图像返回到网页,您都将需要它们