当前位置: 首页 > 面试题库 >

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

赵君植
2023-03-14
问题内容

我有一个会话密钥,它是我从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中使用。



 类似资料:
  • 问题内容: 我正在尝试使用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。但只是想知道是否有办法避免这种情况。

  • 问题内容: 我想从JavaScript代码中调用Python函数,因为JavaScript中没有其他方法可以做我想做的事情。这可能吗?您可以调整以下代码段使其正常工作吗? JavaScript代码: 包含使用高级库编写的函数,这些函数在JavaScript中没有易写的等效项: 问题答案: 您需要做的就是向您的pythoncode发出ajax请求。您可以使用jquery 进行此操作,也可以仅使用ja

  • 问题内容: 有没有人能将C#代码集成到Java应用程序中呢? 代码很小,所以我可以用Java重写,但是如果可能的话,我宁愿重用代码。不要重复自己,等等。 另外,我知道我可以将C#公开为Web服务或其他任何东西,但是其中包含一些安全性/加密功能,因此,我宁愿将其紧密集成。 编辑:它将在基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。 问题答案: 有一个IL到Java字节码编译器Gras