cja*_*ava 0 java ajax jsp servlets
我试图在浏览器中显示来自服务器的图像.我正在关注此链接 http://balusc.blogspot.in/2007/04/imageservlet.html.我必须说这是写得很好并且有记录.我试过这个,一切都很好.
当我使用ajax来显示这个图像时,问题出在那里.整个图像似乎分成div中的一些代码.
据我所知,代码中使用的输出流直接写入页面.但是,实际上不可能处理输出流以某种方式在jsp的image标签中显示图像而不必创建不同的servlet.
谢谢你的阅读
您不需要通过AJAX请求图像数据,然后自己操作它,以便显示它.只需使用<img>标签!
如果/my_url是图像的位置,那么
<img src="/my-url" alt="Appropriate description"/>
Run Code Online (Sandbox Code Playgroud)
会做的.注意:/my-url不一定是实际图像.它可以是返回具有适当MIME类型集的图像数据的任何资源(包括servlet).
如果要动态创建标记,可以使用自己喜欢的库,或者使用本机JS:
var oImg=document.createElement("img");
oImg.setAttribute('src', '/my-url');
oImg.setAttribute('alt', 'Appropriate description');
oImg.setAttribute('height', imgHeight);
oImg.setAttribute('width', imgWidth);
document.body.appendChild(oImg);
Run Code Online (Sandbox Code Playgroud)
如果你想做这个服务器端(如果是这样,这真的是AJAX吗?),那么你可能想看看数据uri方案.
使用此方案,您可以直接将数据传输到图像标记,而无需为其提供HTTP资源.要使用此功能,请将输出流转换为base64并使用以下命令:
<img src="data:image/png;base64,converted-data-stream-goes-here..." alt="Who needs HTTP?"/>
Run Code Online (Sandbox Code Playgroud)
它image/png会根据源数据的MIME类型而改变.
阅读链接的维基百科页面,以完全理解这里的权衡.