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

Ale*_*den 6 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;

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

Ena*_*Ena 8

我用这种方式解决了我的问题:在客户端,我使用com.google.gwt.http.client.URL.encodeQueryString()对参数进行编码,如:

URL.encodeQueryString(param)
Run Code Online (Sandbox Code Playgroud)

在服务器端,我使用ServletRequest方法获取参数,例如:

String myParam = req.getParameter("myparam");
Run Code Online (Sandbox Code Playgroud)

PS我最初为Riley Lark的答案+1了,但后来我也遇到了一些问题...让ServletRequest完成这项工作将为你处理所有角色的编码.请参阅在AppEngine中解码国际字符


Luc*_*ira -1

如果您不愿意使用 gwt-rpc,您可以使用 Base64 进行编码/解码。检查此链接以获取 Base64 编码器/解码器的 gwt 实现。那么你所要做的就是在将请求发送到服务器之前进行 Base64.encode(yourParameterValue) ,并在收到请求后立即在后端进行 Base64.decode(request.getParameter(yourParameterName)) 。

干杯!