我有一个会话密钥,它是我从REST API调用中获得的JavaScript变量。我需要在Servlet中调用Java代码,并将该键作为参数传递。我可以使用什么JavaScript函数来做到这一点?
几种方法:
window.location
window.location = "http://example.com/servlet?key=" + encodeURIComponent(key);
请注意,内置encodeURIComponent()函数在传递请求参数之前对其进行编码的重要性。
encodeURIComponent()
form.submit()
document.formname.key.value = key;
document.formname.submit();
用
<form name="formname" action="servlet" method="post"> <input type="hidden" name="key"> </form>
或者,您也只能设置现有表单的隐藏字段,然后等待用户提交它。
XMLHttpRequest#send()
doGet()
var xhr = new XMLHttpRequest();
xhr.open(“GET”, "http://example.com/servlet?key=” + encodeURIComponent(key)); xhr.send(null);
以下示例将调用servlet doPost()。
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));
xhr
$.get("http://example.com/servlet", { "key": key }); $.post("http://example.com/servlet", { "key": key });
请注意,jQuery本身已经透明地对请求参数进行了编码,因此您encodeURIComponent()在这里不需要。
无论哪种方式,key都只能request.getParameter("key")在servlet中使用。
key
request.getParameter("key")