公眾號(hào):mywangxiao
及時(shí)發(fā)布考試資訊
分享考試技巧、復(fù)習(xí)經(jīng)驗(yàn)
新浪微博 @wangxiaocn關(guān)注微博
聯(lián)系方式 400-18-8000
ScriptEngineManager 類
ScriptEngineManager 可能是腳本包中惟一一個(gè)經(jīng)常使用的具體類;其他大多數(shù)都是接口。它或許是腳本包中惟一的一個(gè)要直接或間接地(通過(guò) Spring Framework 之類的依賴性注入機(jī)制)實(shí)例化的類。ScriptEngineManager 可以使用以下三種方式返回腳本引擎:
·通過(guò)引擎或語(yǔ)言的名稱,比如說(shuō) 清單 1 請(qǐng)求 JavaScript 引擎。
·通過(guò)該語(yǔ)言腳本共同使用的文件擴(kuò)展名,比如說(shuō) Ruby 腳本的 .rb。
·通過(guò)腳本引擎聲明的、知道如何處理的 MIME 類型。
本文示例為什么要使用 JavaScript?
本文中的 Hello World 示例使用了部分 JavaScript 腳本,這是因?yàn)?JavaScript 代碼易于理解,不過(guò)主要還是因?yàn)?Sun Microsystems 和 BEA Systems 所提供的 Java 6 運(yùn)行時(shí)環(huán)境附帶有基于 MozillaRhino 開(kāi)源 JavaScript 實(shí)現(xiàn)的 JavaScript 解釋器。使用 JavaScript,我們無(wú)需在類路徑中添加腳本語(yǔ)言 JAR 文件。
ScriptEngineManager 間接查找和創(chuàng)建腳本引擎。也就是說(shuō),當(dāng)實(shí)例化腳本引擎管理程序時(shí),ScriptEngineManager 會(huì)使用 Java 6 中新增的服務(wù)發(fā)現(xiàn)機(jī)制在類路徑中查找所有注冊(cè)的 javax.script.ScriptEngineFactory 實(shí)現(xiàn)。這些工廠類封裝在 Java 腳本 API 實(shí)現(xiàn)中;也許您永遠(yuǎn)都不需要直接處理這些工廠類。
ScriptEngineManager 找到所有的腳本引擎工廠類之后,它會(huì)查詢各個(gè)類并判斷是否能夠創(chuàng)建所請(qǐng)求類型的腳本引擎 —— 清單 1 中為 JavaScript 引擎。如果工廠說(shuō)可以創(chuàng)建所需語(yǔ)言的腳本引擎,那么管理程序?qū)⒁蠊S創(chuàng)建一個(gè)引擎并將其返回給調(diào)用者。如果沒(méi)有找到所請(qǐng)求語(yǔ)言的工廠,那么管理程序?qū)⒎祷?null,清單 1 中的代碼將檢查 null 返回值并做出預(yù)防。
編輯推薦
JAVA認(rèn)證考試報(bào)考指南 / 更多JAVA考試資料
(責(zé)任編輯:zyc)