在html頁面中,使用js調(diào)用java類要使用ajax,具體方法步驟如下:
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比曲靖網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式曲靖網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋曲靖地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
1、將要調(diào)用的類名和方法名作為參數(shù)傳給某個(gè)servlet.這一步的方法有許多種,用框架,或者直接用xmlHttpRequest對(duì)象;
2、要調(diào)用的類名和類的完整包路徑最好寫在配置文件里,這里假設(shè)類名為Hello,方法名為sayHello,并且sayHello方法不帶參數(shù),類路徑為com.demo.Hello。
3、配置文件AjaxConfig.properties
Hello = com.demo.Hello
4、傳入的參數(shù)設(shè)置為 class=Hellomethod=sayHello
在servlet中作如下處理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
5、讀取配置文件,取出className所對(duì)應(yīng)的值放入classPath變量中,
Class c=Class.forName(classPath);//加載你所指定的類
Class param[]=new Class[0];//方法的參數(shù)為0個(gè)
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//獲取你所指定的類中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//調(diào)用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
6、將returnValue的值返回給客戶端即可
類Hello.java
public class Hello
{
public String sayHello()
{
return "hello";
}
}
靜態(tài)的html標(biāo)簽是無法直接調(diào)用java程序的
有幾種方法可以實(shí)現(xiàn)
1、將按鈕放到form表單中,當(dāng)按鈕點(diǎn)擊時(shí)提交表單(或者直接將input的type屬性定義成submit),表單可以指向JSP或Servlet,在JSP或Servlet里調(diào)用java程序
2、在按鈕的onclick時(shí)間中添加js代碼
self.location="url";其中url指向JSP或Servlet
3、使用第三方的javascript包,dwr是一個(gè)不錯(cuò)的選擇:
需要準(zhǔn)備dwr的jar包,并將之放到lib目錄下;
修改web.xml文件,添加DWRServlet的映射;
配置dwr,即在WEB-INF目錄下,添加dwr.xml文件,讓dwr知道在運(yùn)行的時(shí)候應(yīng)該給哪些JavaBean生成相應(yīng)的javascript庫!
將需要的腳本庫引入到html頁面中就可以通過dwr的API訪問java類了
不是很難,網(wǎng)上參考資料挺多的
4、使用MVC框架的話就更簡(jiǎn)單了,以struts為例,可以仿照1或2,將url替換成配置文件中配置的地址就能訪問java程序了
可以在HTML中嵌入JavaScript代碼來實(shí)現(xiàn)。JavaScript語法很簡(jiǎn)單,百度一下就會(huì)的。
給你個(gè)按鈕調(diào)用JavaScript中方法的例子,希望對(duì)你有用。
html
head
title單擊事件/title
script language="javascript"
function fun(){
alert("Hello World!!!");
}
/script
/head
body
input type="button" value="按鈕" onclick="fun()"
/body
/html
在html頁面中,使用js調(diào)用java類要使用ajax,具體方法步驟如下:
1、將要調(diào)用的類名和方法名作為參數(shù)傳給某個(gè)servlet.這一步的方法有許多種,用框架,或者直接用xmlHttpRequest對(duì)象;
2、要調(diào)用的類名和類的完整包路徑最好寫在配置文件里,這里假設(shè)類名為Hello,方法名為sayHello,并且sayHello方法不帶參數(shù),類路徑為com.demo.Hello。
3、配置文件AjaxConfig.properties
Hello = com.demo.Hello
4、傳入的參數(shù)設(shè)置為 class=Hellomethod=sayHello
在servlet中作如下處理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
5、讀取配置文件,取出className所對(duì)應(yīng)的值放入classPath變量中,
Class c=Class.forName(classPath);//加載你所指定的類
Class param[]=new Class[0];//方法的參數(shù)為0個(gè)
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//獲取你所指定的類中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//調(diào)用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
6、將returnValue的值返回給客戶端即可
類Hello.java
public class Hello
{
public String sayHello()
{
return "hello";
}
}