如何使用Java显示HTML中指定的图像?
嗨,我用Html制作了一个简单的网页。我在桌面上执行它,它工作正常。现在,作为评估的一部分,我正在Eclipse中制作一个客户机/服务器程序。我已经添加了我的HTML文件夹(包含HTML+img),我可以使用缓冲读取器写入客户端,但图像显示为断开的链接。有没有办法解决这个问题如何使用Java显示HTML中指定的图像?,java,html,image,Java,Html,Image,嗨,我用Html制作了一个简单的网页。我在桌面上执行它,它工作正常。现在,作为评估的一部分,我正在Eclipse中制作一个客户机/服务器程序。我已经添加了我的HTML文件夹(包含HTML+img),我可以使用缓冲读取器写入客户端,但图像显示为断开的链接。有没有办法解决这个问题 import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOEx
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
final ServerSocket server = new ServerSocket(8080);
File html = new File("src\\html\\webpage.html");
String sCurrentLine;
System.out.println("Listening for connection on port 8080 ....");
while (true)
{
try (Socket cs = server.accept()){
String httpResponse = "HTTP/1.1 200 OK\r\n\r\n";
cs.getOutputStream().write(httpResponse.getBytes());
try (BufferedReader br = new BufferedReader(new FileReader(html)))
{
while ((sCurrentLine = br.readLine()) != null)
{
cs.getOutputStream().write(sCurrentLine.getBytes());
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
HTML代码:
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<HEAD>
<TITLE>
This is a Title
</TITLE>
</HEAD>
<BODY>
<H1>Hello World</H1>
<P>This is very minimal "hello world"</P>
<button type="button">Click Me!</button>
<img src="tab_background.png">
</BODY>
</HTML>
这是一个标题
你好,世界
这是非常简单的“hello world”
点击我!
如果我理解正确,您正在尝试编写自己的HTTP服务器。目前,无论收到什么请求,它都会发回HTML页面。当浏览器请求图像时,它需要返回具有适当内容类型的图像。您似乎还不太了解HTML和HTTP是如何工作的。为什么不使用众多可用的HTTP服务器中的一个,而不是重新发明轮子?编写HTTP服务器绝非易事,我在这里只想通过java程序显示html文件的内容。稍后我将对所有请求使用HTTP。我只是不明白为什么在我连接到服务器时,这段代码会加载映像。。它显示所有文本、标题等,但不显示图像?它如何在不从服务器加载图像的情况下显示图像?如果您使用浏览器在flickr上浏览照片,浏览器将使用HTTP从flickr下载这些照片,就像它下载包含这些图像引用的HTML页面一样。它不能只是下载HTML并猜测图像是什么而不下载它们。由于自定义HTTP服务器不允许下载映像,因此客户端无法显示它。