【问题标题】:How to handle image/gif type response on client side using GWT如何使用 GWT 在客户端处理图像/gif 类型响应
【发布时间】:2009-11-19 12:20:25
【问题描述】:

我有一个关于如何在客户端处理图像/gif 类型响应的问题,任何建议都会很棒。 有一项服务响应从数据库中检索图像(目前每次只有一个)。代码是这样的,

JDBC 连接 构造 MYSQL 查询。 执行查询 如果有 ResultSet,则检索第一个 { //将图像保存为Blob图像,“img”是图像表中唯一的实体。 图像 = rs.getBlob("img"); } response.setContentType("图片/gif"); //设置响应类型 InputStream in = image.getBinaryStream(); //输出Blob图片到InputStream int 缓冲区大小 = 1024; //缓冲区大小 字节 [] 缓冲区 = 新字节 [缓冲区大小]; //初始缓冲区 整数长度=0; //从输入流中读取长度数据并存入缓冲区 而((长度= in.read(缓冲区))!= -1){ out.write(缓冲区,0,长度); //写入ServletOutputStream } 附寄(); out.flush(); //写出

客户端代码

…… imgform.setAction(GWT.getModuleBaseURL() + "serviceexample/ImgRetrieve"); …… 点击监听器 { OnClick,然后是 imgform.submit(); } 表单处理程序 { onSubmit,表单验证 提交完成 ?????? //处理响应,并显示图像 **这是我的问题,我试过了 图片 img = new Image(GWT.getHostPageBaseURL() +"serviceexample/ImgRetrieve"); mg.setSize("300", "300"); imgpanel.add(img); 但我只得到了 300X300 尺寸的非显示图像。** }

那么,在这种情况下,我应该如何处理响应者?

谢谢,

【问题讨论】:

    标签: jsp gwt


    【解决方案1】:

    您的问题非常晦涩...我看到旧式 HTML 表单/提交和 GWT 代码的组合。

    普通的 GWT 应用程序只需要在 UI 中的某个位置放置一个 Image 小部件,该小部件引用您描述的图像服务的 url。

    如何或何时显示图像由您决定。 但是,您需要做的就是让浏览器中显示的图像

    Image img = new Image([图片服务的网址]); 面板.add(img);

    其中 panel 是已经显示的某个面板。

    如果您希望等到用户单击某个按钮后才显示图像,请执行以下操作:

    button.addClickHandler(新 ClickHandler(){ 公共无效点击(点击事件e){ Image img = new Image([图片服务的网址]); 面板.add(img); } });

    【讨论】:

    • 也许我没有正确解释我的问题。实际上,我的应用程序是创建一个注册用户登录界面。注册用户的照片存储在数据库中(注册时上传),一旦用户登录成功,他/她的照片将从数据库中检索并显示,所以使用表单提交和GWT的组合是我找到的唯一解决方案,只是想知道如果在这种情况下可以使用任何其他技术,因为这是我的第一个 GWT 应用程序。
    • 我曾尝试使用
      Image img = new Image( “google.com/intl/en_AL/images/logo.gif” );
      显示图像,它按预期工作。因为我的图像存储在 ServletOutputStream ,我尝试使用
      Image img = new Image (GWT.getHostPageBaseURL() + "serviceexample/ImgRetrieve"); 
      但图片不显示。
    猜你喜欢
    • 2020-11-26
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2020-12-16
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多