快速业务通道

在JavaScript程序中整合Java函数 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
将返回给JavaScript一个空字符串,在别的情况下(如果不是数组),将返回Java对象的字符型返回值。如果你的Java函数返回数组或者向量(Vector)或枚举(Enumeration),结果将被表示为JavaScript中的数组。例如:在类dbpool中,你如果有某个函数performQuery(some_sql_string)来通过JDBC来调用SQL查询,将转换ResultSet成为数组(或向量)然后把这个数组返回给JavaScript。

res=java.dbpool.performQuery("select * from emp"); first=res[0]; second=res[1];

程序还应该实现控制台(JINJ控制台),这样你就可以直接从浏览器中运行这个Servlet,并且可以创建/删除对象,相应的命令是: http://your_host/servlet/JINJ?your_password

在JavaScript程序中整合Java函数(5)

时间:2010-12-25

或者,如果你使用扩展名映射JinJ的话,则::

http://your_host/your_file.JinJ?your_password ,这些都应当在程序中体现,你可以在servlet的初始化参数中设置口令,参数名是admin. 如:

JINJ.code=JINJ JINJ.initparams=admin=secret,   servlet=http://myhost/servlet/JINJ,        root=/home/www/pub,     objects=/home/load/obj.txt,     codebase=http://myhost/ 默认的密码值是abcd,所以使用JINJ?abcd 将运行管理员界面,通过这一页,你可以删除或者创建新的对象的实例。

下面,然我们来看看具体在Java代码上如何实现我们的构思:

JinJ.java

import java.io.*; import java.lang.reflect.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class JinJ extends HttpServlet { public JinJ() { } public void init(ServletConfig servletconfig)//初始化 throws ServletException { super.init(servletconfig); inst = new Hashtable(); cls = new Hashtable(); NEWLINE = System.getProperty("line.separator"); file://获取行分割符在本系统中的属性值,例如在UNIX下为 separator = System.getProperty("file.separator");//获取文件分割符在本系统中的属性值,例如在UNIX下为/ if((THIS_SERVLET = getInitParameter("servlet")) == null) file://getInitParameter方法,返回一个字符串,包含命名的初始化参数的值,如果参数不存在则为空。 THIS_SERVLET = ""; if((admin = getInitParameter("admin")) == null) admin = "abcd"; if((DOCUMENT_ROOT = getInitParameter("root")) == null) DOCUMENT_ROOT = ""; if(DOCUMENT_ROOT.length() > 0 && !DOCUMENT_ROOT.endsWith(separator)) file://如果DOCUMENT_ROOT的长度为正值,并且不以文件分割符结尾则 DOCUMENT_ROOT = DOCUMENT_ROOT + separator; if((CODEBASE = getInitParameter("codebase")) == null) CODEBASE = ""; JAVA_FILE = getInitParameter("objects"); if(JAVA_FILE != null && inst != null) loadJava(JAVA_FILE); } private void loadJava(String s) { System.out.println("从" + s +"调用Java对象 "); try { BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(new FileInputStream(s))); file://创建一个文件输入流缓冲区 String s1; file://开始分析文件 while((s1 = bufferedreader.readLine()) != null)//每次读入一行 { s1 = s1.trim(); file://把字符串两端的空格去掉 /********************************************************* * 如果以";"结尾则去掉";" ***********

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号