我制造了一个/header
Netbeans 中网页目录中的文件夹并添加了一个名为header.png
。现在我想使用以下代码在 servlet 中访问此图像文件:
BufferedImage image = ImageIO.read(getClass().getResource(" /header/header.png"));
但这并没有发生,它给出了以下错误:
java.lang.IllegalArgumentException:输入== null!
以下是我的项目的目录结构:
这个错误是如何引起的以及如何解决?
The Class#getResource()
从类路径返回资源,而不是从公共 Web 内容。
你需要ServletContext#getResource(), 或更好,getResourceAsStream()反而。
BufferedImage image = ImageIO.read(getServletContext().getResourceAsStream("/header/header.png"));
(请注意,我也从路径中删除了尾随空格)
请注意,某些用户可能会建议您使用ServletContext#getRealPath()
,但您不应该在这种特殊情况下使用它,因为这可能会返回null
当容器配置为将部署的 WAR 扩展到内存而不是本地磁盘文件系统时。
也可以看看:
- servletcontext.getRealPath("/") 是什么意思以及何时应该使用它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)