查找和加载数据文件

每当 JavaServlets 需要从用相对 URL(未完全指定文件位置的 URL)指定的文件中加载数据时,Servlets 通常使用代码库或文档库来形成完整的 URL。

JApplet getCodeBase方法返回的代码库是一个 URL,该 URL 指定从中加载 applet 类的目录。对于本地部署的 Servlets,getCodeBase方法返回 null。

JApplet getDocumentBase方法返回的文档库指定包含 Servlets 的 HTML 页面的目录。对于本地部署的 Servlets,getDocumentBase方法返回 null。

除非<applet>标记指定代码库,否则代码库和文档库都引用同一服务器上的同一目录。

Servlets 可能需要或需要依赖作为备份的数据通常是相对于代码库指定的。Servlets 开发人员通常通过使用参数指定的数据通常是相对于文档库指定的。

Note:

出于安全原因,浏览器限制了可读取不受信任 Servlets 的 URL。例如,大多数浏览器不允许不受信任的 Servlets 使用“ ..”访问代码库或文档库上方的目录。另外,由于不受信任的 applet 不能读取该 applet 的原始主机上的文件以外的文件,因此,如果文档和不受信任的 applet 位于不同的服务器上,则文档库通常无用。

JApplet类定义了图像加载和声音加载方法的便捷形式,使您可以指定相对于基本 URL 的图像和声音。例如,假定使用下图所示的目录结构之一设置了 applet。

两种目录结构分别在不同的位置显示图像文件和类文件,结构不同。

要创建使用imgDir下的a.gif图像文件的Image对象,Servlets 可以使用以下代码:

Image image = getImage(getCodeBase(), "imgDir/a.gif");