如何将GWT编码的查询参数解码为服务器端?

时间:2011-05-23 18:04:21

标签: url gwt encode

我正在使用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;

有人可以建议我应该使用服务器端解码编码的字符串吗?

3 个答案:

答案 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))。

喝彩!