怎么在js调用java方法

JavaScript013

怎么在js调用java方法,第1张

如果你是在JSP页面里,在js代码里可以用<% ...java代码....%>

不过不建议混编,最好JS和JAVA代码分开,JS可以通过AJAX调用访问JAVA提供的接口,利于后期维护。

题主的问题回答:

方法1.提供一个servlet ,在servlet中调用getAllEmployees()

方法,把响应的值写入response,修改响应头为application/json,在页面使用ajax访问servlet,最后处理响应值

方法2..提供一个servlet ,在servlet中调用getAllEmployees()

方法,把响应的值存入request作用域,在JSP页面中使用EL表达式获取值

思路

1、java端建立servlet服务,js通过ajax等方式调用servlet

2、可以通过dwr等第三方方式集成,然后调用java方法

3、用jsp,使用<%%>的方式进行脚本执行

举例

var a= "<%=Test.buttonTest()%>"//Test就是java类,buttonTest就是java的函数

为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。

1、映射Java对象到JavaScript对象上

代码如下:

mWebView = (WebView) findViewById(R.id.wv_content)

mWebView.setVerticalScrollbarOverlay(true)

final WebSettings settings = mWebView.getSettings()

settings.setSupportZoom(true)

//WebView启用Javascript脚本执行

settings.setJavaScriptEnabled(true)

settings.setJavaScriptCanOpenWindowsAutomatically(true)

//映射Java对象到一个名为”js2java“的Javascript对象上

//JavaScript中可以通过"window.js2java"来调用Java对象的方法

mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java")

代码如下:

/**网页Javascript调用接口**/

class JSInvokeClass {

public void back() {

activity.finish()

}

}

2、JavaScript调用Java对象示例

调用上述JSInvokeClass类对象的back方法,如下:

复制代码 代码如下:

window.js2java.back()