用JSP技术创造自己的VRML世界

作者: BUILDER.COM
Thursday, September 12 2002 10:56 AM

 
环境

 

我们的例子曾在配有Java开发工具包(JDK)1.31版的Tomcat服务器上进行了测试,但是这些测试结果是标准的,它们没有像在Java网络服务器或其它JSP网络服务器(装有JDK 1.2版或更高版本)上那样显示VRML效果。数据库的功能在微软SQL Server 2000和Oracle8i数据库服务器上进行了测试。我用的是Cortona VRML浏览器

建立服务器

为了使JSP应用程序用一种浏览器可以正确理解的方式返回VRML,网络服务器需要正确设置扩展MIME(多用途网际邮件扩展协议)。VRML文件以“.wrl”为后缀。以下是Tomcat网页中xml文件的一段节选:

<mime-mapping>
 <extension>wrl</extension>
 <mime-type>x-world/x-vrml</mime-type>
</mime-mapping>


如测试例子用到Tomcat服务器一样,该网络服务器应该已经正确设置了扩展MIME。

调试

如果浏览器不在JSP的输出端口上,我推荐你使用两个浏览器:一个已经安装了VRML客户程序,另一个没有。我在Internet Explorer的基础上安装了一个VRML浏览器并在Netscape的基础上调试JSP。

源文件

为了看到使用VRML和JSP可以达到的效果,我们建立了一个演示例子。该例子的源文件如下:

  • Sphere.wrl 包含了一个虚拟球体的例子。
  • Create.wrl 展示了VRML与JSP对话的另一种方式。
  • Db.jsp 从数据库获得用于动态创建虚拟球的数据。
  • Create2.wrl和db2.jsp 是关于在create.wrl所展示技术的进一步演示。
联接JSP和VRML头

对大多数服务器来说,JSP对头有相当的容错性。然而,当头的第一行出现语法错误时,VRML浏览器就会出现很大的麻烦。

当服务器发出回应时,它将削去所有的JSP代码。这样,在仅有JSP代码的行上,服务器将向浏览器发送一个空行。这就是说,如果一个JSP文件的第一行是<%@ page language="java" %>(这一行仅有JSP代码),VRML浏览器就会报错而不是正确地显示页面。

如果必须包含同时包含JSP头和VRML头,那就把它们放在一行,如下所示:
<%@ page language="java" %> #VRML V2.0 utf8

现在在设置VRML头之前,必须改变内容类型,那么最终结果如下所示:
<%@ page language="java" %><%response.setContentType("x-world/x-vrml");%>#VRML V2.0 utf8

 

<<上一页【流程】      下一页【VRML球】>>