我有一个简单的GWT应用程序,它由一个包含单个FileUpload字段的FormPanel组成。此表单上的操作是将其发送到GWT.getModuleBaseURL()+“process”,该web.xml反过来告诉GWT是FileProcessServlet。在HttpServlet和GWT应用程序的客户端之间进行通信
FileProcessServlet是一个类,我提出,延伸的HttpServlet和覆盖的doPost(HttpServletRequest的REQ,HttpServletResponse的RESP)来解析上传的文件,把它变成使用Base64Utils一个Base64字符串。现在,我想向客户端传递一个字符串,它是刚刚发送它的文件的Base64编码。
对于我的生活,我只是无法弄清楚如何做到这一点。关于Communicating with the Server的GWT文档没有说明从FormPanel.submit()接收信息的任何内容。没有与这样的请求相关的回调函数,就像GWT RPC的情况一样。同时,我需要使用一个servlet,因为我想分析一个文件,而这不能由客户端完成。有什么建议么?
~~~~
PS:一种选择是,我可以直接写信给使用java.io的PrintWriter的servlet的html页面(如this建议)。这可能会提供一种解决方案,将Base64字符串存储在带有特殊ID的div中,然后使用DOM在客户端上获取此内容。不过,我还没有得到PrintWriter与我合作。每当我使用它时,使用不同的内容类型和字符编码,我仍然看不到任何内容打印在页面上。我目前试图打印出来的是:
String base64 = Base64Utils.toBase64(file);
resp.setContentType("text/html; charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.print(base64);
out.flush(); out.close();
但是什么都没有出来。调试器已确认在倒数第二行的字符串base64不为空也不为空。任何有关这方面的帮助也将不胜感激。尽管如此,我衷心希望有更好的办法。
这不是空要么? – home
如何将servlet集成到页面中? – home
我不确定我了解你的问题。 – Coder