Вложение параметров HTTP GET (запрос в запросе) - PullRequest
1 голос
/ 10 октября 2011

Я хочу вызвать JSP с параметрами GET внутри параметра GET родительского JSP.URL для этого будет http://server/getMap.jsp?lat=30&lon=-90&name=http://server/getName.jsp?lat1=30&lon1=-90

getName.jsp вернет строку, которая входит в параметр name getMap.jsp.

Я думаю, что проблема здесь в том, что &lon1=-90 в конце URL будет дан getMap.jsp вместо getName.jsp. Есть ли способ отличить, какой параметр GET отправляется на какой URL?

Одна из моих идей заключалась в том, чтобы закодировать второй URL (например, = -> %3D и &-> %26) но это не сработало.Моя лучшая идея на данный момент - разрешить только один параметр во втором URL, разделенный запятыми.Поэтому у меня будет http://server/getMap.jsp?lat=30&lon=-90&name=http://server/getName.jsp?params=30,-90 и оставлено до getName.jsp для разбора его переменных.Таким образом, я оставляю & в покое.

ПРИМЕЧАНИЕ - я знаю, что могу подойти к этой проблеме с совершенно другой точки зрения и вообще избежать вложенных URL-адресов, но мне все еще интересно (радизнания!) если это возможно или кто-то сделал это ...

1 Ответ

0 голосов
/ 10 октября 2011

Много сделано, особенно с технологиями показа рекламы и перенаправлениями URL

Но закодированный URL должен просто работать нормально. Вы должны полностью закодировать это. Генератор можно найти здесь

Итак, это: http://server/getMap.jsp?lat=30&lon=-90&name=http://server/getName.jsp?lat1=30&lon1=-90

становится таким: http://server/getMap.jsp?lat=30&lon=-90&name=http%3A%2F%2Fserver%2FgetName.jsp%3Flat1%3D30%26lon1%3D-90

Я уверен, что у jsp есть функция для этого. Ищите «urlencode». Ваш JSP увидит содержимое переменной GET "name" в виде незакодированной строки: "http://server/getName.jsp?lat1=30&lon1=-90"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...