一般的瀏覽器中是無法通過js調(diào)用本地java程序的,但是可以調(diào)用嵌入到網(wǎng)頁的applet的方法。交互方式如下:
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)延津,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
applet?codebase?=?"."?width?=?"400"?height??=?"400"
name=?"MyApplet"?code?=?"test.applets.MyApplet1.class"?
script
//?js訪問applet屬性:document.appletName.appletField?(屬性必須是public的)?
//?js訪問Applet方法:document.appletName.appletMethod?(方法必須是public的)
function?showLable{
//?調(diào)用test.applets.MyApplet1類的invokeByJS方法?
document.applets["MyApplet"].invokeByJS('myvalue');
}
/script
思路
1、java端建立servlet服務(wù),js通過ajax等方式調(diào)用servlet
2、可以通過dwr等第三方方式集成,然后調(diào)用java方法
3、用jsp,使用%%的方式進(jìn)行腳本執(zhí)行
舉例
var a= "%=Test.buttonTest()%"; //Test就是java類,buttonTest就是java的函數(shù)
\r\n\r\n//上面我用java代碼根據(jù)id取得了一個(gè)user類的實(shí)體 u 下面就可以用js操作顯示等等\r\nalert();//在窗口打印一個(gè)用戶名\r\n\r\n
實(shí)現(xiàn)javascript中調(diào)用java類中的方法如下:
只要調(diào)用addJavascriptInterface方法即可映射一個(gè)Java對(duì)象到JavaScript對(duì)象上。
1、映射Java對(duì)象到JavaScript對(duì)象上
代碼如下:
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
final WebSettings settings = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView啟用Javascript腳本執(zhí)行
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//映射Java對(duì)象到一個(gè)名為”js2java“的Javascript對(duì)象上
//JavaScript中可以通過"window.js2java"來調(diào)用Java對(duì)象的方法
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
代碼如下:
/**網(wǎng)頁Javascript調(diào)用接口**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}
2、JavaScript調(diào)用Java對(duì)象示例
調(diào)用上述JSInvokeClass類對(duì)象的back方法,如下:
window.js2java.back();
如果你是在JSP頁面里,在js代碼里可以用% ...java代碼....%
不過不建議混編,最好JS和JAVA代碼分開,JS可以通過AJAX調(diào)用訪問JAVA提供的接口,利于后期維護(hù)。
題主的問題回答:
方法1.提供一個(gè)servlet ,在servlet中調(diào)用getAllEmployees()
方法,把響應(yīng)的值寫入response,修改響應(yīng)頭為application/json,在頁面使用ajax訪問servlet,最后處理響應(yīng)值
方法2..提供一個(gè)servlet ,在servlet中調(diào)用getAllEmployees()
方法,把響應(yīng)的值存入request作用域,在JSP頁面中使用EL表達(dá)式獲取值