【问题标题】:How to print the correct path to resource when using out.print for HTML将 out.print 用于 HTML 时如何打印资源的正确路径
【发布时间】:2011-12-25 19:35:52
【问题描述】:

我是 java 新手,正在尝试通过 html servlet 从文件路径添加图像“space.gif”。

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
{              
  response.setContentType("text/html");

  PrintWriter out = response.getWriter();

  out.print("<HTML>");
  out.print("<HEAD><TITLE>Upload Image</TITLE></HEAD>");
  out.print("<BODY>");

  out.print("<img src='space.gif' alt='image' />");

  out.print("</BODY>");
  out.print("</HTML>");
  out.close();
}

【问题讨论】:

  • 嘿杰夫!欢迎来到堆栈溢出!我们要求您尽可能清楚地回答问题,并展示您在尝试解决问题时收集或尝试的任何代码、材料或其他信息。这使得回答问题变得更加容易。
  • 如果你展示一些代码并写出更详细的问题描述,我打赌你会在这里得到帮助:)
  • 看起来你已经完成了你要问的事情;有问题吗?
  • 我的图片没有显示,只有文字。我想我的文件路径一定有问题。

标签: java servlets


【解决方案1】:

如果您将space.gif 放在公共 Web 内容中的正确位置并通过正确的 URL 引用它,那么它会正常工作。正如您现在所拥有的,它的位置取决于调用 servlet 的 URL。基本上,它应该与 servlet 几乎在同一个文件夹中。

这个例子应该这样做:

WebContent
 |-- images
 |    `-- space.gif
 `-- WEB-INF
      |-- classes
      `-- lib

out.print("<img src='" + request.getContextPath() + "/images/space.gif' alt='image' />");

或者,如果该图像实际上位于公共 Web 内容之外,并且由于某些不明显的原因您无法将其移动到公共 Web 内容中,那么您需要将额外的 Web 应用程序上下文添加到您的服务器配置指向到那个文件夹,例如/images,这样你就可以了

out.print("<img src='/images/space.gif' alt='image' />");

另见:


与具体问题无关,HTML属于JSP,不属于Servlet

【讨论】:

  • 你应该把spacer.gif改成space.gif
【解决方案2】:

找到 (YourProjectname).xml 文件中给出的 docBase 路径(我的是 D:\MiniProject2\MiniProject2\build\web), 然后只需创建一个图像文件夹(我在 D:\MiniProject2\MiniProject2\build\web 中创建了文件夹“Images”) 将您的图像存储在此文件夹中

现在使用

它会起作用的;

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多