我正在尝试使用javascript和servlet将图片网址发送到浏览器。
我正在做以下
在html中:
<script type="text/javascript" src="../licenta/WebRoot/Scripts/choosebanner.js"></script>
在javascript中:
window.onload = Onload;
function OnLoad()
{
var requestURI = window.location;
var resolution = screen.width + 'x' + screen.height;
var colorDepth = screen.colorDepth;
var query = '?requestURI=' + encodeURIComponent(requestURI)
+ '&resolution=' + encodeURIComponent(resolution);
document.getElementById("body").innerHTML = "<img src ='http://dan-vaio:8080/licenta/ bannerimg.gif'" + query + " width = 500 height = 200 />";
}
在servlet中:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
String requestURI = request.getParameter("requestURI");
String resolution = request.getParameter("resolution");
response.setContentType("text/html; charset=UTF-8");
String img = "http://dan-vaio:8080/licenta/advertiser/banners/leader.jpg";
PrintWriter out = response.getWriter();
out.print(img);
out.close();
}
问题是我无法显示图像。 Javascript工作正常,调用服务器,服务器打印respsone,但jpg没有显示在html页面。任何提示如何使这工作?
非常感谢
答案 0 :(得分:0)
我认为你想要提供图像本身,而不是它的路径。读取servlet中的映像文件,并将二进制文件写入响应。另一种方法是将javascript中的src设置为servlet的响应。但是,您需要对servlet进行Ajax调用,读取响应并将其写入img src标记中。你这样做的方式,你将img src指向一个字符串,当然不会显示图像。
答案 1 :(得分:0)
这是关于您的内容类型。您应该将响应的内容类型设置为image / jpeg。这样导航器就会明白它是一个图像。你应该改变它:
response.setContentType("image/jpeg");
如果您正在提供jpeg图片,那么请按照此方式查找您方便的内容类型:http://www.w3schools.com/media/media_mimeref.asp
答案 2 :(得分:0)
<强>步骤:强>
FileInputStream
。response.setContentType("image/jpeg");
示例强>:
FileInputStream fileIS = new FileInputStream("sample.jpg");
response.setContentLength(fileIS.available());
int i = 0;
while ((i = fileIS.read()) != -1) {
out.write(i);
}
fileIS.close();