我正在尝试在 javascript 中调用 java 方法。java 类驻留在服务器端。
示例 Java 代码是:
public class deleteconfig
{
static boolean check = true;
public static void initiate()
{
check = false;
}
}
我想在我的 javascript 中调用我的 deleteconfig.initiate() 方法
任何帮助是极大的赞赏。
干杯
我正在尝试在 javascript 中调用 java 方法。java 类驻留在服务器端。
示例 Java 代码是:
public class deleteconfig
{
static boolean check = true;
public static void initiate()
{
check = false;
}
}
我想在我的 javascript 中调用我的 deleteconfig.initiate() 方法
任何帮助是极大的赞赏。
干杯
由于 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 的更多信息可以帮助您入门!
javascript 在您的浏览器中运行,您的 java 代码部署在您的容器(Tomcat)中。
因此,调用它的唯一方法是通过 Web 调用。您的 javascript 应该调用对一个 servlet(在 web.xml 中配置)的 ajax 调用,并且该 servlet 应该调用您的 java 方法。
您也可以在服务器中运行 javascript。参见 NodeJS
您可以使用 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%>表达式被评估并打印出文档。<% code%>将代码插入到 servlet 服务方法中。<%! code%>代码插入到 servlet 类中,在任何方法之外。对于 JSP 脚本元素是可能的,并且基于 XML 标记的另一种语法形式:
<jsp:expression> Java expression </ jsp: expression><jsp:scriptlet> Java code </ jsp: scriptlet><jsp:declaration> Statement Java </ jsp: declaration>您的 Javascript 在浏览器中运行客户端,因此通常不会与运行服务器端的 Java 代码交互。您可能希望将 Java 方法公开为 RESTful API 端点并在 Javascript 代码中执行 AJAX 调用。
有几种方法在技术上是可行的,但不确定你为什么要这样做:
Google 的网络工具包: - 参见:http ://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideRPCDeployment