java - 未找到使用 img 标签在 servlet 中显示的图像

标签 java servlets

我有一个带有文本框的网页 (htm)(将其更改为下拉选项)。

我在那里写下图片名称(.png、.jpg、.gif)并点击提交按钮

调用了 servlet,并且我正在尝试显示具有用户在网页中输入的名称的图像。

图像与 servlet 的 .class 文件位于同一目录中, 但是当我尝试使用 <img> 显示它时从 servlet 标记(通过将其写入 PrintWriter 的流),我得到资源不可用。

我还尝试使用 localhost:8080/webAppName/imgName 手动查找几张图像。但仍然没有找到资源。

当我尝试使用exists()时,我也得到错误方法File类。

servlet 工作正常,我已经显示了一些文本作为对客户端的响应,但它无法找到图像。

Servlet 以 HTTP GET 方式调用。

这是 servlet 代码:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Expt16_3PassImg2Servlet extends HttpServlet
{
    String IPMsg;
    String imgName="";

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
{
    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();
    imgName=request.getParameter("imgNameEntry");
    boolean imgExists=true;
    pw.println("<html>");
    pw.println("<body>");
    //if((new File("./"+imgName)).exists())
        pw.println("<img src=\""+imgName+"\">");
    //else
        //pw.println("<h1>Image doesnt exist</h1>");
    pw.println("</body>");
    pw.println("</html>");
    pw.println("<br>Sample Text");

}
}

我知道我们可以通过将内容类型设置为 image/jpeg 来显示图像,但我想使用 img 标签来显示它。

顺便说一句,正如您所看到的,我正在将我的 servlet 扩展到 HttpServlet。

最佳答案

图像应位于 Web 目录中 - 与放置任何其他可公开访问的资源(例如 HTML 文件)的位置相同(但不在 WEB-INF 下)。

客户端对类路径资源的了解为零。除非您将图像名称映射到类路径资源并流回字节,否则类路径上的图像对客户端是不可见的。

<小时/>

用户如何知道图像的名称是什么?

关于java - 未找到使用 img 标签在 servlet 中显示的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706974/

相关文章:

java - 无法将 servlet 添加到 Tomcat web.xml

java - 如何将 myproject.war 文件和 myproject-ds.xml 文件迁移到 JBoss AS 7

java - 在计算中使用常量变量?

java - Android java.lang.RuntimeException 错误

java - 是否有在线中央 javadoc 存储库?

java - Apache POI 无法检测哈希格式的数字

java - 如何从打包在war文件中的jar文件中加载资源?

java - Phonegap 文件上传 Java 服务器

java - Eclipse 需要哪些 JAR 文件才能使用 JSTL,以便最终在 GAE/J 上运行?

java - @Value 不注入(inject)属性,保持为空