如java小程序在html网页中怎么运行?

如java小程序在html网页中怎么运行?,第1张

首先静态的html标签是无法直接调用java程序的。\x0d\x0a下面是实现的几方法:\x0d\x0a\x0d\x0a第一种方法:\x0d\x0a将按钮放到form表单中,当按钮点击时提交表单(或者直接将input的type属性定义成submit),表单可以指向JSP或Servlet,在JSP或Servlet里调用java程序\x0d\x0a\x0d\x0a第二种方法:\x0d\x0a在按钮的onclick时间中添加js代码\x0d\x0aself.location="url"其中url指向JSP或Servlet\x0d\x0a\x0d\x0a第三种方法:\x0d\x0a使用第三方的javascript包,dwr是一个不错的选择:\x0d\x0a1、需要准备dwr的jar包,并将之放到lib目录下;\x0d\x0a2、修改web.xml文件,添加DWRServlet的映射;\x0d\x0a3、配置dwr,即在WEB-INF目录下,添加dwr.xml文件,让dwr知道在运行时给哪些JavaBean生成相应的javascript库;\x0d\x0a4、将需要的脚本库引入到html页面中就可以通过dwr的API访问java类了。\x0d\x0a\x0d\x0a第四种方法:\x0d\x0a使用MVC框架更简单,以struts为例,可以仿照第一或第二种方法,将url替换成配置文件中配置的地址就能访问java程序了。

在html页面中,使用js调用java类要使用ajax,具体方法步骤如下:

1、将要调用的类名和方法名作为参数传给某个servlet.这一步的方法有许多种,用框架,或者直接用xmlHttpRequest对象;

2、要调用的类名和类的完整包路径最好写在配置文件里,这里假设类名为Hello,方法名为sayHello,并且sayHello方法不带参数,类路径为com.demo.Hello。

3、配置文件AjaxConfig.properties

Hello = com.demo.Hello

4、传入的参数设置为 class=Hello&method=sayHello

在servlet中作如下处理:

String className=request.getParameter("classname")

String methodName=request.getParameter("method")

String classPath=null

5、读取配置文件,取出className所对应的值放入classPath变量中,

Class c=Class.forName(classPath)//加载你所指定的类

Class param[]=new Class[0]//方法的参数为0个

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])//调用你所指定的方法

} 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"

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11136392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存