У меня есть сеансовый ключ, который является переменной JavaScript, которую я получил от вызова API REST. Я должен назвать свой код Java в сервлете и передаче тем ключом в качестве параметра. Какую функцию JavaScript я могу использовать, чтобы сделать это?
Несколько способов:
Использование Window.Location
, чтобы выстрелить запрос на получение. Уже в том, что он синхронно (так что клиент увидит, что текущая страница изменяется).
Window.Location = «http://example.com/servletskkey=) + encodeuricomponent (ключ);
Обратите внимание на важность встроенного функции EncodeUr Component ()
для кодирования параметров запроса перед его передачей.
Использование Форма. SUBMIT ()
, чтобы пожарить запрос GET или POST. Будьте также то, что он синхронно.
Document.Formname.ky.value = ключ;
Document.formname.submit ();
С
<имя формы = «Форман» Action = «Сервет» метод = «Post»>
<тип ввода = "скрытое" name = "ключ">
form>
В качестве альтернативы вы также можете установить только скрытое поле существующей формы и просто подождать, пока пользователь не отправит его.
Использование XMLHTTPREQUEST # Отправить ()
, чтобы выстрелить асинхронный запрос на заднем плане (также известный как Ajax). Ниже пример будет вызывать сервлет «s doget ()
.
var xhr = new xmlhtttprequest ();
XHR.Open («GET», «http://example.com/servletskkey=» + encodeuricomponent (ключ));
XHR.Send (NULL);
Приведенный ниже пример будет вызываться сервлета допост ()
.
var xhr = new xmlhtttrequest ();
XHR.Open («Post», «http://example.com/servlet»);
XHR.SetrequestHealther («тип контента», «Приложение / X-WWW-Form-urlencoded»);
XHR.SEND («KEY =» + ENCODEURICOMPONENT (KEY));
Использование jQuery jQuery Для отправки CrossBrowser Consustiable AJAX-запроса (выше XHR
работает только в реальных браузерах, для совместимости MSIE, вам нужно добавить немного беспорядка;)).
$. Get ("http://example.com/servlet", {"Ключ": ключ});
$. POST ("http://example.com/servlet", {"Key": ключ});
Обратите внимание, что jQuery уже прозрачно кодирует параметры запроса, поэтому вам не нужно encodeUricomponent ()
здесь.
в любом случае, в любом случае [клавиша
будет просто Доступно в Request.getParameter («Key»)
в сервлете.
Нет функции JavaScript SE, но браузеры обычно * предоставляют объект XMLHTTREQUEST , и вы можете пройти через это .
Библиотеки , такие как yui и jQuery , обеспечивают функции помощника для упрощения его использования.
* Для значения «обычно», который включает в себя довольно любой браузер, который поддерживает JavaScript и был выпущен, поскольку Netscape 4 умерл