Java 动态生成的图像,使用POST获取

Java 动态生成的图像,使用POST获取,java,javascript,ajax,prototypejs,Java,Javascript,Ajax,Prototypejs,我需要在JSP中动态加载图像。我已经试过了 ,但问题是URL太长,无法使用GET发送 我现在正在执行一个POST呼叫。根据我发送的参数,从servlet生成一个饼图图像。图像没有持久化,因此我不能返回类似“images/image1.jpg”的内容并将其设置为图像的src 因此,我将图像作为字节数组返回,并设置适当的图像内容类型 我的问题是:一旦我有了javascript中的图像字节,如何在相应的img标记中显示它们 这是我的AJAX调用: new Ajax.Request(url, {

我需要在JSP中动态加载图像。我已经试过了
,但问题是URL太长,无法使用GET发送

我现在正在执行一个POST呼叫。根据我发送的参数,从servlet生成一个饼图图像。图像没有持久化,因此我不能返回类似“images/image1.jpg”的内容并将其设置为图像的src

因此,我将图像作为字节数组返回,并设置适当的图像内容类型

我的问题是:一旦我有了javascript中的图像字节,如何在相应的img标记中显示它们

这是我的AJAX调用:

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(request) {
                    alert(request.responseText);      
        }
});

我自己还没试过,但应该能用。 您可以创建一个映像并使用。您必须将中的
字节[]
转换为base64编码字符串才能工作

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(response) {
            var img = new Image();
            img.src = "data:image/png;base64," + response;

            document.body.appendChild(img);
        }
});

下面是我头脑中的解决方案,应该适用于所有浏览器:


不要使用AJAX和
标记,而是使用一个
预填充表单,表单中包含所有必要的POST参数和
onload
处理程序集,以将此表单提交到图像服务脚本。使此脚本返回将在此iframe中显示的纯图像,保持页面的其余部分不变。

为什么URL太长?这似乎有点奇怪…嘿,你能把它弄出来吗…那太好了help@beerbajay:因为其中一个参数是一个JSONized文档,包含许多字段。它是一个尚未持久化的文档,根据用户在各个字段中输入的值,将生成一个piechart,并从servlet返回。它应该在哪个浏览器中运行?@Andreas:第一位,在FF中。但当我在FF中运行它之后,我也想在IE9中运行它。