3

我正在尝试在 javascript 中调用 java 方法。java 类驻留在服务器端。

示例 Java 代码是:

public class deleteconfig
{
  static boolean check = true;
  public static void initiate()
  {
    check = false; 
  }

}

我想在我的 javascript 中调用我的 deleteconfig.initiate() 方法

任何帮助是极大的赞赏。

干杯

4

4 回答 4

5

由于 javascript 是客户端脚本,它不能直接调用驻留在服务器上的 java 方法

如果没有任何特定的 java 框架,您可以使用 Java Server Pages (JSP) 在收到来自 javascript 的 GET 请求时调用 deleteconfig.initiate()。

发送请求

您可能还想使用 JQuery(一个 javscript 插件 - http://jquery.com/)像这样向服务器发送异步 GET 请求

//javascript code
function callInititiate(){

   //This sends a get request to executeInit.jsp
   //
   $.get('localhost/myWebbApp/executeInit.jsp');

}

$(callInitiate);

接收请求

在服务器端,您应该有调用 deleteconfig.initiate() 静态方法的 executeInit.jsp

//in executeInit.jsp
<%@ page import="deleteconfig"%>

<%
// executes initiate() static method
deleteconfig.initiate();

%>

也许阅读有关 Java Server Pages 的更多信息可以帮助您入门!

于 2012-07-18T07:57:36.207 回答
3

javascript 在您的浏览器中运行,您的 java 代码部署在您的容器(Tomcat)中。

因此,调用它的唯一方法是通过 Web 调用。您的 javascript 应该调用对一个 servlet(在 web.xml 中配置)的 ajax 调用,并且该 servlet 应该调用您的 java 方法。

您也可以在服务器中运行 javascript。参见 NodeJS

于 2012-07-18T08:06:47.897 回答
2

您可以使用 JavaServerPage (JSP) 或 Applets,以下是针对您的情况的 JSP 示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
  <TITLE>JSP</TITLE> 
 </HEAD> 
 <BODY> 
  <H2>JSP </H2> 
  <UL> 
    <LI>Curent time: <%= new java.util.Date() %> 
    <LI>Host name: <%= request.getRemoteHost() %> 
    <LI>ID sesion: <%= session.getId() %> 
  </UL> 
  <% deleteconfig deletecfg = new deleteconfig(); %>
  <%= delectecfg.initiate(); =%>
 </BODY> 
</HTML> 

JSP 脚本元素是:

  • 表达式:<% = expression%>表达式被评估并打印出文档。
  • Scriptlet<% code%>将代码插入到 servlet 服务方法中。
  • 语句:<%! code%>代码插入到 servlet 类中,在任何方法之外。

对于 JSP 脚本元素是可能的,并且基于 XML 标记的另一种语法形式:

  • <jsp:expression> Java expression </ jsp: expression>
  • <jsp:scriptlet> Java code </ jsp: scriptlet>
  • <jsp:declaration> Statement Java </ jsp: declaration>
于 2012-07-18T07:55:52.417 回答
1

您的 Javascript 在浏览器中运行客户端,因此通常不会与运行服务器端的 Java 代码交互。您可能希望将 Java 方法公开为 RESTful API 端点并在 Javascript 代码中执行 AJAX 调用。

  • 参见:http ://docs.jquery.com/Tutorials (ajax 教程)

有几种方法在技术上是可行的,但不确定你为什么要这样做:

Google 的网络工具包: - 参见:http ://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideRPCDeployment

于 2012-07-18T07:51:56.830 回答