您现在的位置是: 软件 > 开发者网络 > 程序方舟 > Java专栏 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

在JavaScript程序中整合Java函数
2001-05-26· ·wayne··yesky

上一页  1 2 3 4 5 6 7 8  下一页


  Servlet参数

  为了让JinJ正常运行,还应当能够为JinJ servlet设置一些全局参数,这也是我们在编程是应当注意到的问题。对于JSWDK, Servlet属性是参数'initparams'的一部分;对于Tomcat,则应当编辑系统中的web.xml

  1)需要设置JinJ servlet的路径,参数名是servlet,就像这样:

    http://your_host:port/servlet/JINJ

  2) 需要设置存放HTML页的根目录,参数名是root,其值就像这样: /home/webpages (或c:\webpages) (默认值是一个空的字符串)。 例如,如果你的根目录是:/home/webpages,并且你使用http://host/servlet/JINJ?myfile.htm 的话,那你的真实的文件名是/home/webpages/myfile.htm

  3) 需要设置你定义的Java对象的文件的完全目录,参数名是objects,其值只是一个存放在你的服务器中的一个文件的文件名。

  4) 需要设置用于java applet的codebase,参数名是codebase,定义了存放applet的类的路径,比如http://your_host/ 。

  以下为Tomcat中web.xml 中的相应设置:

<servlet>
<servlet-name>JinJ</servlet-name>
<servlet-class>JinJ</servlet-class>
<init-param>
<param-name>servlet</param-name>
<param-value>http://your_host/servlet/JinJ</param-value>
</init-param>
<init-param>
<param-name>root</param-name>
<param-value>path_to_the_root_directory</param-value>
</init-param>
<init-param>
<param-name>objects</param-name>
<param-value>path_to_your_objects_file</param-value>
</init-param>
<init-param>
<param-name>codebaset</param-name>
<param-value>http://your_host/</param-value>
</init-param>
</servlet>



  在编程时还应当注意实现读取对象文件中所包含的对象,或创建新的Java对象

  1. 在初始化JinJ Servlet时将创建一些Java对象,因此你必须在某个文本文件中定义这些对象,并且在参数objects中设置这个文件的路径,这是一个文本文件,每一行描述了一个元素(空行和以#或//开头的行将被忽略),使用下面的格式来描述参数:

   object_name=new class_name(list_of_parameters);

  换句话说,它很象每次调用类构造器的new操作符,object_name 是就是某个你将在JavaScript中使用到的标识符,例如:

  file://数据池

  A=new dbPool(5);

  file://哈希表

  B=new java.util.Hashtable();

  或者使用你自己定义的包和类:c=new myPackage.myClass(true);

  然后在JavaScript中,你就可以使用它们了,如A.connect(),其中connect() 是类dbPool的一个函数,或者使用B.put('key',value)

  注意

  1)你的类应当放在你的CLASSPATH指定的目录下面。

  2)你可以使用类名作为对象名 (不过这必须在没有重名的情况下,因为对象名必须是唯一的),如:dbPool=new dbPool();

  2. 为了更优化程序,应当在编程的时候就预建一些对象组成标准化库,通过标准化库,你可以在运行中创建/删除对象的实例,查看存在的对象等。

  下面就是我们需要实现的标准化库(预定义的对象) ,对象名是JinJ,所以服务器端名为JinJ的实例将会被自动创建,这给类中有下面几个函数:



public boolean create(String object_name,String class_name,list_of_constructors_parameters);
public void delete(String object_name);
public boolean exists(String object_name);
public String id();
public int random(int n1, int n2);

public String rewriteURL(document,String id_name);
public String rewriteURL(document,String id_name,String id_value);



  create(创建):能够让你在运行时创建某个对象的实例:

  参数为:

   - 新的对象名
   - 类名
   - 参数列表 (如果你使用默认构造函数的时候,可以为空)。

  返回值:

   - 根据创建的接过返回true 或 false

  例如:


<script language="JavaScript">
<!--
创建myHash 作为一个新的哈希表Hashtable -->
java.JinJ.create("myHash","java.util.Hashtable");

<!-- 使用myHash -->
java.myHash.put('key1','shop1');
</script>

delete:让你删除任何对象的实例。
参数为:
- 对象名

例如:
<script language="JavaScript">
<!-- 删除myHash -->
java.JinJ.delete("myHash");
</script>

exists:查看对象的实例是否存在。
参数为:
- 对象名
返回值:
true 或 false

例如:
<script language="JavaScript">
if (java.JinJ.exists("myHash")=='false')
{
<!--创建myHash 作为一个新的哈希表Hashtable -->
java.JinJ.create(myHash,"java.util.Hashtable");

<!--使用myHash -->
java.myHash.put('key1','shop1');
}
</script>

id: 返回唯一的标示符,比如你可以在支持session的程序中使用这个函数。
Random: 从给定的数域中返回随机值:
例如:
<script language="JavaScript">
var sessionId=java.JinJ.id();

<!-- 从1到10中的随机数 -->
var randValue=java.JinJ.random(1,10);
</script>

rewriteURL:能够让你使用session。你可以用<a href="some_url? id_name=id_value">你的链接</a>来替代<a href="some_url">你的链接</a>这同样适用于任何形式的动作。你可以只设置一个参数名,参数值将自动生成,也可以同时设置参数名和参数值:
例如:
<script language="JavaScript">

<!--添加sessionId=某个值到这个链接 -->
java.JinJ.rewriteURL(document,'sessionId');

<!-- 添加 id=12345 到这个链接-->
java.JinJ.rewriteURL(document,'id',12345);

</script>

  我们还要能够分析读入Java函数的参数,对于一个参数我们必须知道它的数据类型,为了简单起见,我们就认为有四种数据类型整型,浮点型,布尔型其余的全归于字符串型,你可以看到,这在程序中都有相应的解释。

  例如:



<!-- 我们假定A(int,float,String,boolean) -->
 java.myClass.myFunc(2, 5.6, a123, true);


  
  为了保证你传递的参数是一个字符串型的值的话,请你使用"或者',如:



<!--总是作为字符串型数据传递-->
java.myClass.myFunc("256");

上一页  1 2 3 4 5 6 7 8  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 EJB的专用术语解释
 J2EE配置指南
 使用JavaBean高效处理JSP
 C#进阶教程(二)
 Excel中的"宏"的应用
 用 Java 保存位图文件
 Java布局管理器深入讨论
 XML和J2EE的组合技术
 简析J2EE应用程序数据库类设计模式
 电子商务模型的JSP、JavaBean实现
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!