10 个解决方案
#1
文档类型不一样,不可能把字节码内容和文本内容放在一起吧
image类型还是要用servlet/jsp读出来,设置文件输出类型
image类型还是要用servlet/jsp读出来,设置文件输出类型
#2
up
#3
只知道ajax从后台读出来的结果集有responseText、responseXML,没听说读出图片的,望高人出现
#4
文档类型就不一样,有responseBody,但是有什么用?
#5
在jsp里
<img src="getImage?id=xxx"/>
在getImage 对应的servlet里
byte[] buf = 假设你已经获取了byte数组
res.setContentType("image/jpeg");
out = res.getOutputStream();
out.write(buf, 0, buf.length);
out.close();
<img src="getImage?id=xxx"/>
在getImage 对应的servlet里
byte[] buf = 假设你已经获取了byte数组
res.setContentType("image/jpeg");
out = res.getOutputStream();
out.write(buf, 0, buf.length);
out.close();
#6
我之前也认为不行,但看了楼上的,突然产生了一个想法,就是利用ajax ,把
<form name="f1" action="XX" method="XX">
<img src="getImage?id=xxx"/>
<!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样-->
</form>
添加到页面
<form name="f1" action="XX" method="XX">
<img src="getImage?id=xxx"/>
<!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样-->
</form>
添加到页面
#7
图片肯定是用servlet输出来的,至于怎么样去调用那就是你那边的事了,就简单得很了。
#8
这样肯定是没有问题的了
我项目中就是这样处理的
不需要ajax也可以实现
我项目中就是这样处理的
不需要ajax也可以实现
#9
页面不刷新图片就是写不出来。
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title></title>
<script language="javascript">
var XMLHttpReq = false;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); }
function processResponse() {
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data;
var p=document.getElementById("pic");
var pic=document.createElement("img");
p.appendChild(pic);
p.src="picread?id="+res;
} else {
window.alert("");
}
}
}
function picload() {
sendRequest("pic");
}
</script>
</head>
<body>
<span id="pic">
</span>
<input type="button" onclick="picload();">
<img src="picread?id=40288b0e149658900114965893770001">
</body>
</html>
下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title></title>
<script language="javascript">
var XMLHttpReq = false;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); }
function processResponse() {
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data;
var p=document.getElementById("pic");
var pic=document.createElement("img");
p.appendChild(pic);
p.src="picread?id="+res;
} else {
window.alert("");
}
}
}
function picload() {
sendRequest("pic");
}
</script>
</head>
<body>
<span id="pic">
</span>
<input type="button" onclick="picload();">
<img src="picread?id=40288b0e149658900114965893770001">
</body>
</html>
下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。
#10
图片的url请求本来就是异步的,所以没有必要用ajax来做。
只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。
记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。
只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。
记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。
#1
文档类型不一样,不可能把字节码内容和文本内容放在一起吧
image类型还是要用servlet/jsp读出来,设置文件输出类型
image类型还是要用servlet/jsp读出来,设置文件输出类型
#2
up
#3
只知道ajax从后台读出来的结果集有responseText、responseXML,没听说读出图片的,望高人出现
#4
文档类型就不一样,有responseBody,但是有什么用?
#5
在jsp里
<img src="getImage?id=xxx"/>
在getImage 对应的servlet里
byte[] buf = 假设你已经获取了byte数组
res.setContentType("image/jpeg");
out = res.getOutputStream();
out.write(buf, 0, buf.length);
out.close();
<img src="getImage?id=xxx"/>
在getImage 对应的servlet里
byte[] buf = 假设你已经获取了byte数组
res.setContentType("image/jpeg");
out = res.getOutputStream();
out.write(buf, 0, buf.length);
out.close();
#6
我之前也认为不行,但看了楼上的,突然产生了一个想法,就是利用ajax ,把
<form name="f1" action="XX" method="XX">
<img src="getImage?id=xxx"/>
<!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样-->
</form>
添加到页面
<form name="f1" action="XX" method="XX">
<img src="getImage?id=xxx"/>
<!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样-->
</form>
添加到页面
#7
图片肯定是用servlet输出来的,至于怎么样去调用那就是你那边的事了,就简单得很了。
#8
这样肯定是没有问题的了
我项目中就是这样处理的
不需要ajax也可以实现
我项目中就是这样处理的
不需要ajax也可以实现
#9
页面不刷新图片就是写不出来。
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title></title>
<script language="javascript">
var XMLHttpReq = false;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); }
function processResponse() {
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data;
var p=document.getElementById("pic");
var pic=document.createElement("img");
p.appendChild(pic);
p.src="picread?id="+res;
} else {
window.alert("");
}
}
}
function picload() {
sendRequest("pic");
}
</script>
</head>
<body>
<span id="pic">
</span>
<input type="button" onclick="picload();">
<img src="picread?id=40288b0e149658900114965893770001">
</body>
</html>
下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title></title>
<script language="javascript">
var XMLHttpReq = false;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); }
function processResponse() {
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data;
var p=document.getElementById("pic");
var pic=document.createElement("img");
p.appendChild(pic);
p.src="picread?id="+res;
} else {
window.alert("");
}
}
}
function picload() {
sendRequest("pic");
}
</script>
</head>
<body>
<span id="pic">
</span>
<input type="button" onclick="picload();">
<img src="picread?id=40288b0e149658900114965893770001">
</body>
</html>
下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。
#10
图片的url请求本来就是异步的,所以没有必要用ajax来做。
只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。
记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。
只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。
记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。