【问题标题】:How to get the image from project classpath in Servlet on Netbeans如何从 Netbeans 上的 Servlet 中的项目类路径获取图像
【发布时间】:2012-11-18 18:40:31
【问题描述】:

我在 Netbeans 的网页目录中创建了一个 /header 文件夹,并添加了一个名为 header.png 的图像。现在我想使用以下代码在 servlet 中访问此图像文件:

BufferedImage image = ImageIO.read(getClass().getResource(" /header/header.png"));

但这并没有发生,它给出了以下错误:

java.lang.IllegalArgumentException: input == null!

下面是我项目的目录结构:

这个错误是怎么引起的,我该如何解决?

【问题讨论】:

  • 请不要一遍又一遍地转发同一个问题:stackoverflow.com/questions/13640602/… 如果您认为您的问题可以改进,请编辑它。或者,如果您似乎无法找到它,请单击顶部栏中的用户名链接,它会引导您进入您的用户个人资料,在那里您可以找到您之前提出的所有问题。

标签: java image servlets


【解决方案1】:

Class#getResource() 从类路径返回资源,而不是从公共 Web 内容。

您需要ServletContext#getResource(),或者更好的是getResourceAsStream()

BufferedImage image = ImageIO.read(getServletContext().getResourceAsStream("/header/header.png"));

(请注意,我也从路径中删除了尾随空格)

请注意,有些用户可能会建议您使用ServletContext#getRealPath(),但您不应该在这种特殊情况下使用它,因为当容器配置为将部署的 WAR 扩展到内存而不是本地磁盘时,它可能会返回 null文件系统。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    相关资源
    最近更新 更多