Назовите Сервлет и вызовите код Java от JavaScript наряду с параметрами

У меня есть сеансовый ключ, который является переменной JavaScript, которую я получил от вызова API REST. Я должен назвать свой код Java в сервлете и передаче тем ключом в качестве параметра. Какую функцию JavaScript я могу использовать, чтобы сделать это?

7
задан BalusC 7 August 2016 в 06:47
поделиться

2 ответа

Несколько способов:

  1. Использование Window.Location , чтобы выстрелить запрос на получение. Уже в том, что он синхронно (так что клиент увидит, что текущая страница изменяется).

     Window.Location = «http://example.com/servletskkey=) + encodeuricomponent (ключ);
     

    Обратите внимание на важность встроенного функции EncodeUr Component () для кодирования параметров запроса перед его передачей.

  2. Использование Форма. SUBMIT () , чтобы пожарить запрос GET или POST. Будьте также то, что он синхронно.

     Document.Formname.ky.value = ключ;
    Document.formname.submit ();
     

    С

     <имя формы = «Форман» Action = «Сервет» метод = «Post»>
      <тип ввода = "скрытое" name = "ключ">
     
     

    В качестве альтернативы вы также можете установить только скрытое поле существующей формы и просто подождать, пока пользователь не отправит его.

  3. Использование 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));
     
  4. Использование jQuery jQuery Для отправки CrossBrowser Consustiable AJAX-запроса (выше XHR работает только в реальных браузерах, для совместимости MSIE, вам нужно добавить немного беспорядка;)).

     $. Get ("http://example.com/servlet", {"Ключ": ключ});
     

     $. POST ("http://example.com/servlet", {"Key": ключ});
     

    Обратите внимание, что jQuery уже прозрачно кодирует параметры запроса, поэтому вам не нужно encodeUricomponent () здесь.

в любом случае, в любом случае [клавиша будет просто Доступно в Request.getParameter («Key») в сервлете.

Смотрите также:

13
ответ дан 6 December 2019 в 14:04
поделиться

Нет функции JavaScript SE, но браузеры обычно * предоставляют объект XMLHTTREQUEST , и вы можете пройти через это .

Библиотеки , такие как yui и jQuery , обеспечивают функции помощника для упрощения его использования.

* Для значения «обычно», который включает в себя довольно любой браузер, который поддерживает JavaScript и был выпущен, поскольку Netscape 4 умерл

1
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: