我正在使用GWT的com.google.gwt.http.client.URL.encode()方法对查询参数进行编码,但发现我无法在服务器上使用URL.decode()对其进行解码,因为实现不可用(我怀疑它使用javascript客户端实现)。我明白了......
java.lang.UnsatisfiedLinkError:com.google.gwt.http.client.URL.decodeImpl(Ljava / lang / String;)Ljava / lang / String;
有人可以建议我应该使用服务器端解码编码的字符串吗?
答案 0 :(得分:8)
我用这种方式解决了我的问题:在客户端,我使用com.google.gwt.http.client.URL.encodeQueryString()对参数进行编码,如:
URL.encodeQueryString(param)
在服务器端,我使用ServletRequest方法获取参数,例如:
String myParam = req.getParameter("myparam");
PS我最初为Riley Lark的回答+1,但后来我也遇到了一些问题...让ServletRequest完成这项工作将为你处理所有角色的编码。
见Decoding international chars in AppEngine
答案 1 :(得分:3)
java.net.URLDecoder
在AppEngine上实施,与com.google.gwt.http.client.URL.encode()完美配合。
答案 2 :(得分:-1)
如果您不愿意使用gwt-rpc,可以使用Base64进行编码/解码。检查this link以获取Base64编码器/解码器的gwt实现。然后,您需要做的就是在向服务器发送请求之前使用Base64.encode(yourParameterValue),并在收到请求后立即在后端使用Base64.decode(request.getParameter(yourParameterName))。
喝彩!