通過URL讀取圖像並將其呈現在JSP頁面上的最佳方法是什麼?JSP/Servlet:如何通過URL讀取圖像並將其呈現在JSP頁面上(圖像URL未公開)
到目前爲止,我編寫了兩個JSP頁面。
編輯開始:
*Experimental: Obviously the ImageServ will be a servlet, not a jsp.
編輯結束:
index.jsp
<%page ....
<html>
......
<img src="ImageServ.jsp?url=http://serveripaddress/folder/image.jpg" />
.....
ImageServ.jsp
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.net.URL"%>
<%@page import="java.io.*, java.awt.*, java.awt.image.*,com.sun.image.codec.jpeg.*" %>
<%
try {
String urlStr = "";
if(request.getParameter("url") != null)
{
urlStr = request.getParameter("url");
URL url = new URL(urlStr);
BufferedImage img = null;
try{
img = ImageIO.read(url);
out.println(" READ SUCCESS" + "<br>");
}catch(Exception e) {
out.println("READ ERROR " + "<br>");
e.printStackTrace(new PrintWriter(out));
}
try {
response.setContentType("image/jpeg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(img);
}catch(Exception ee) {
response.setContentType("text/html");
out.println("ENCODING ERROR " + "<br>");
ee.printStackTrace(new PrintWriter(out));
}
}
} catch (Exception e) {
e.printStackTrace(new PrintWriter(out));
}
%>
但這似乎並沒有被工作: 所有的時間我看到這個錯誤:
READ SUCCESS
ENCODING ERROR
java.io.IOException: reading encoded JPEG Stream
at sun.awt.image.codec.JPEGImageEncoderImpl.writeJPEGStream(Native Method)
at sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:476)
at sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:228)
任何想法如何得到這個工作?
沒有工作,因爲img是BufferedImage類型;得到了,說/ImageServ.jsp:57一個錯誤:無法找到符號 符號:方法寫(java.awt.image.BufferedImage中) 位置:類java.io.OutputStream中 \t \t \t \t o.write(IMG); – Satish
@Satish:我已經更新了代碼。 – zacheusz
謝謝!但仍試圖找到一種方法將BufferedImage成功寫入jsp outputstream。 – Satish