调用Servlet并从JavaScript调用Java代码以及参数
我有一个会话密钥,它是我从REST
API调用中获得的JavaScript变量。我需要在Servlet中调用Java代码,并将该键作为参数传递。我可以使用什么JavaScript函数来做到这一点?
回答:
几种方法:
- 使用
window.location
火的GET请求。注意,它是同步的(因此客户端将看到当前页面正在更改)。window.location = "http://example.com/servlet?key=" + encodeURIComponent(key);
请注意,内置encodeURIComponent()
函数在传递请求参数之前对其进行编码的重要性。
- 用
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>
或者,您也只能设置现有表单的隐藏字段,然后等待用户提交它。
- 用于
XMLHttpRequest#send()
在后台触发异步请求(也称为Ajax)。以下示例将调用servletdoGet()
。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));
- 使用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