Как должен быть декодирован параметр запроса в кодировке GWT на стороне сервера? - PullRequest
6 голосов
/ 23 мая 2011

Я кодирую параметр запроса, используя метод 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 ]

8 голосов
/ 25 апреля 2012

Я решил свою проблему следующим образом: на стороне клиента я кодирую параметры с помощью com.google.gwt.http.client.URL.encodeQueryString (), например:

URL.encodeQueryString(param)

На стороне сервера я получаю параметры, используя методы ServletRequest, например:

String myParam = req.getParameter("myparam");

PS Сначала я добавил +1 к ответу Райли Ларк, но потом у меня возникли некоторые проблемы с некоторыми персонажами ... Если задание ServletRequest выполнит эту работу, то оно будет обрабатывать все кодировки символов. См. Расшифровка международных символов в AppEngine

3 голосов
/ 23 мая 2011

java.net.URLDecoder реализовано в AppEngine и отлично работает с com.google.gwt.http.client.URL.encode () .

0 голосов
/ 23 мая 2011

Если вы не хотите использовать gwt-rpc, вы можете кодировать / декодировать с помощью Base64. Проверьте эту ссылку для реализации gwt кодера / декодера Base64. Затем все, что вам нужно сделать, это Base64.encode (yourParameterValue) перед отправкой запроса на сервер и Base64.decode (request.getParameter (yourParameterName)) в бэкэнде сразу после получения запроса.

ура! * * 1005

...