我有一个会话密钥,它是我从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)。以下示例将调用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));
xhr
浏览器兼容的Ajax请求(以上代码仅在实际的浏览器中有效,为了实现MSIE兼容性,您将需要添加一些混乱的内容;))。$.get("http://example.com/servlet", { "key": key });
$.post("http://example.com/servlet", { "key": key });
请注意,jQuery本身已经透明地对请求参数进行了编码,因此您encodeURIComponent()
在这里不需要。
无论哪种方式,key
都只能request.getParameter("key")
在servlet中使用。
问题内容: 我正在尝试使用MVC设计模式创建一个Web应用程序。对于GUI部分,我想使用JavaScript。并用于控制器Java Servlet。 现在,我从未真正使用过JavaScript,因此很难弄清楚如何从JavaScript调用Java Servlet,以及如何从Servlet获取响应。 有人可以帮我吗? 问题答案: 因此,您想将Ajax调用激发到servlet吗?为此,您需要JavaS
问题内容: 通过使用Java Scripting API,我能够在Java中执行JavaScript。但是,有人可以解释一下我需要添加到此代码中以便能够调用C:/Scripts/Jsfunctions.js中的函数吗? 问题答案: 使用读剧本
通过使用Java脚本API,我能够在Java中执行JavaScript。但是,有人能解释一下,为了能够调用C:/scripts/jsfunctions.js中的函数,我需要在这段代码中添加什么内容吗
我在为测试目的调用简单java类中的servlet时遇到了一个问题。我希望将一个参数与servlet一起传递,方法将是post。如何实现? 在搜索答案时,我看到有人推荐了HttpClient。但只是想知道是否有办法避免这种情况。
问题内容: 有没有人能将C#代码集成到Java应用程序中呢? 代码很小,所以我可以用Java重写,但是如果可能的话,我宁愿重用代码。不要重复自己,等等。 另外,我知道我可以将C#公开为Web服务或其他任何东西,但是其中包含一些安全性/加密功能,因此,我宁愿将其紧密集成。 编辑:它将在基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。 问题答案: 有一个IL到Java字节码编译器Gras
gcc-g-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.