【发布时间】:2016-09-05 11:26:52
【问题描述】:
我正在运行 Web 服务并通过在脚本中嵌入 java 来调用方法:
<script type="text/javascript">
function getSS(){
<%-- start web service invocation --%>
var x = <%
try {
org.me.testbilling.TestBillingWS_Service service = new
org.me.testbilling.TestBillingWS_Service();
org.me.testbilling.TestBillingWS port = service.getTestBillingWSPort();
java.lang.String name = "Mike" ;
java.lang.String result = port.getSS(name);
out.println(result);
} catch (Exception ex) {
out.println(ex);
}
%>
<%-- end web service invocation --%>
alert(x);
}
</script>
问题是我想要这条线:
java.lang.String name = "Mike";
是动态的,以便它可以从用户输入的文本中提取变量,或者像这样的选择:
<select id="getName" onchange="getSS($('#getName').find(":selected").text())">
<option>Mike</option>
<option>John</option>
<option>Patty</option>
<option>Stephanie</option>
</select>
所以我需要的是一种更好的调用方式,或者一种将变量动态传递到该脚本的方式。有什么建议吗?
【问题讨论】:
-
它只是不能那样工作。 Javascript 在客户端上运行,而 Java 代码在服务器上运行。即使它们在同一个文件中(这种风格很糟糕),它们也是彼此远离的网络连接。
-
那么如何调用java代码并动态传递变量呢?
-
您需要向服务器发出请求。我建议您阅读一些基本的 servlet 教程,停止在 JSP 中包含 Java 代码,并忘记尝试创建 web 服务。您缺少所有基础知识。
-
我已经做了一个 servlet 教程。它似乎朝着我想要的相反方向发展。据我所知,它会编写 HTML 页面本身,但这不会让我将基于用户输入的变量传递给 java 代码(无需重新加载页面)。
-
我正在使用这个教程:netbeans.org/kb/docs/websvc/jax-ws.html
标签: javascript java jquery ajax web-services