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

从javascript调用Java servlet

姚臻
2023-03-14
问题内容

我正在尝试使用MVC设计模式创建一个Web应用程序。对于GUI部分,我想使用JavaScript。并用于控制器Java Servlet。

现在,我从未真正使用过JavaScript,因此很难弄清楚如何从JavaScript调用Java Servlet,以及如何从Servlet获取响应。

有人可以帮我吗?


问题答案:

因此,您想将Ajax调用激发到servlet吗?为此,您需要XMLHttpRequestJavaScript中的对象。这是Firefox兼容的示例:

<script>
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            var data = xhr.responseText;
            alert(data);
        }
    }
    xhr.open('GET', '${pageContext.request.contextPath}/myservlet', true);
    xhr.send(null);
</script>

但是,这非常冗长,并且不完全兼容跨浏览器。对于引发Ajaxical请求和遍历HTMLDOM树的最佳跨浏览器兼容方式,我建议使用jQuery。这是对jQuery的重写:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    $.get('${pageContext.request.contextPath}/myservlet', function(data) {
        alert(data);
    });
</script>

无论哪种方式,服务器上的Servlet都应映射到的url-pattern/myservlet(您可以根据自己的喜好进行更改),并且至少已doGet()实现并将数据写入响应,如下所示:

String data = "Hello World!";
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(data);

这应该显示Hello World!在JavaScript警报中。

您当然也可以使用doPost(),但是您应该在jQuery中使用'POST'inxhr.open()或use $.post()代替$.get()

然后,要在HTML页面中显示数据,您需要操纵HTMLDOM。例如,您有一个

<div id="data"></div>

在您想要显示响应数据的HTML中,则可以代替alert(data)第一个示例:

document.getElementById("data").firstChild.nodeValue = data;

在jQuery示例中,您可以以更简洁,更漂亮的方式执行此操作:

$('#data').text(data);


 类似资料:
  • 问题内容: 我有一系列XML文件,这些文件引用XSLT文件以在浏览器中呈现为HTML。其中一些链接会在常规页面上执行AJAX调用以请求HTML,并将其插入页面上已有的DIV中。 我想做的是从该页面调用链接的Web服务,然后接收XML,然后以与原始页面相同的方式将其处理为HTML,然后通过AJAX插入当前页面的DIV中。 我的问题是:我将如何获取Javascript下载的XML并使用Javascri

  • 问题内容: 我有一个applet,可以从特定的文件夹上载一些文件并删除它们,但是当我从javascript代码中调用applet函数时,出现了问题,当我从它调用该函数时,它工作正常。 我的小程序代码: 这是我的JavaScript代码: 当我从javascript调用时,仅打印日志: 请注意,当我从applet方法调用时,它可以正常工作。 我将代码包装到中,但仅前进了一步,然后继续 问题答案: J

  • 问题内容: 我使用PhoneGap开发了一个应用程序。我得到了一项在后台进行本地编码的服务(该服务和手机缺口应用程序在同一项目中)。不幸的是,我想从此服务中调用javascript函数。因此,我在网上搜索并创建了一些有趣的东西:创建一个扩展Plugin的类并在其中进行一些处理。然后我发现了这个: 我用此代码进行了测试,但是发生了一些错误: 这是我测试的方式: 在类c中,execute方法如下: 当

  • 问题内容: 我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。 问题答案: 有一个hack: 绑定一些Java对象,以便可以使用WebView从Javascript调用它: 通过以下方式强

  • 问题内容: 我正在用ASP.NET编写网页。我有一些JavaScript代码,并且有一个带有click事件的Submit按钮。 是否可以使用JavaScript的click事件调用我在ASP中创建的方法? 问题答案: 好吧,如果您不想使用Ajax或任何其他方式来执行此操作,而只希望进行正常的ASP.NET回发,则可以按照以下方法进行操作(不使用任何其他库): 虽然有点棘手… :) 一世。在您的代码

  • 问题内容: 有人可以提供从CodeBehind调用JavaScript函数的好示例,反之亦然吗? 问题答案: 您可以尝试这样: