otro llamar insertar funcion externo ejemplos desde cómo codigo archivo javascript jsp servlets parameter-passing

insertar - llamar funcion javascript desde otro archivo. js



Llame a Servlet e invoque el código Java desde JavaScript junto con los parámetros (3)

Tengo una clave de sesión que es una variable de JavaScript que obtuve de una llamada a la API REST. Necesito llamar a mi código Java en un servlet y pasar esa clave como parámetro. ¿Qué función de JavaScript puedo usar para hacer eso?


Sin función de JavaScript per se, pero los navegadores generalmente * proporcionan un objeto XMLHttpRequest y puede atravesar eso .

Las bibliotecas como YUI y jQuery proporcionan funciones auxiliares para simplificar su uso.

* por un valor de "generalmente" que incluye casi cualquier navegador que admita JavaScript y se lanzó desde que Netscape 4 murió


Varias maneras:

  1. Use window.location para window.location una solicitud GET. La advertencia es que es síncrono (por lo que el cliente verá que se cambia la página actual).

    window.location = "http://example.com/servlet?key=" + encodeURIComponent(key);

    Tenga en cuenta la importancia de la función incorporada encodeURIComponent() para codificar los parámetros de solicitud antes de pasarlo.

  2. Use form.submit() para form.submit() una solicitud GET o POST. La advertencia es también que es síncrono.

    document.formname.key.value = key; document.formname.submit();

    Con

    <form name="formname" action="servlet" method="post"> <input type="hidden" name="key"> </form>

    Alternativamente, también puede configurar el campo oculto de un formulario existente y esperar hasta que el usuario lo envíe.

  3. Use XMLHttpRequest#send() para iniciar una solicitud asincrónica en segundo plano (también conocida como Ajax). El ejemplo siguiente invocará el servlet doGet() .

    var xhr = new XMLHttpRequest(); xhr.open("GET", "http://example.com/servlet?key=" + encodeURIComponent(key)); xhr.send(null);

    El ejemplo siguiente invocará a servlet doPost() .

    var xhr = new XMLHttpRequest(); xhr.open("POST", "http://example.com/servlet"); xhr.send("key=" + encodeURIComponent(key));

  4. Utilice jQuery para enviar una solicitud Ajax compatible con crossbrowser (el código xhr anterior funciona solo en navegadores reales, para compatibilidad con MSIE, necesitará agregar algo de desorden;)).

    $.get("http://example.com/servlet", { "key": key });

    Tenga en cuenta que jQuery ya codifica transparentemente los parámetros de solicitud por sí solo, por lo que no necesita encodeURIComponent() aquí.

De cualquier forma, la key estará simplemente disponible por request.getParameter("key") en el servlet.

Ver también:


Al enviar POST, agregue el encabezado xhttp.setRequestHeader ("Content-type", "application / x-www-form-urlencoded");

El código se ve como Cliente:

function executeRequest(req) { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // Typical action to be performed when the document is ready: document.getElementById("response").value = xhttp.responseText; } }; xhttp.open("POST", "execute/cardbrowser", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send("lorem=ipsum&name=binny"); }

Servidor:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(req.getParameter("lorem")); }