调用Servlet并从JavaScript调用Java代码以及参数

我有一个会话密钥,它是我从REST

API调用中获得的JavaScript变量。我需要在Servlet中调用Java代码,并将该键作为参数传递。我可以使用什么JavaScript函数来做到这一点?

回答:

几种方法:

  1. 使用window.location火的GET请求。注意,它是同步的(因此客户端将看到当前页面正在更改)。
    window.location = "http://example.com/servlet?key=" + encodeURIComponent(key);

请注意,内置encodeURIComponent()函数在传递请求参数之前对其进行编码的重要性。

  1. form.submit()火GET或POST请求。需要注意的是它是同步的。
    document.formname.key.value = key;

    document.formname.submit();

    <form name="formname" action="servlet" method="post">

<input type="hidden" name="key">

</form>

或者,您也只能设置现有表单的隐藏字段,然后等待用户提交它。

  1. 用于XMLHttpRequest#send()在后台触发异步请求(也称为Ajax)。以下示例将调用servlet doGet()
    var xhr = new XMLHttpRequest();

    xhr.open(“GET”, "http://example.com/servlet?key=” + encodeURIComponent(key));

    xhr.send(null);

以下示例将调用servlet doPost()

    var xhr = new XMLHttpRequest();

xhr.open("POST", "http://example.com/servlet");

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.send("key=" + encodeURIComponent(key));

  1. 使用jQuery发送跨xhr浏览器兼容的Ajax请求(以上代码仅在实际的浏览器中有效,为了实现MSIE兼容性,您将需要添加一些混乱的内容;))。
    $.get("http://example.com/servlet", { "key": key });

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

请注意,jQuery本身已经透明地对请求参数进行了编码,因此您encodeURIComponent()在这里不需要。

无论哪种方式,key都只能request.getParameter("key")在servlet中使用。

以上是 调用Servlet并从JavaScript调用Java代码以及参数 的全部内容, 来源链接: utcz.com/qa/410468.html

回到顶部