歡迎來(lái)到“管理角”這個(gè)版,新一期的月刊專欄專注于 WebLogic 服務(wù)器的管理、配置、處理和開(kāi)發(fā)方面。
開(kāi)辟這個(gè)專欄的目的是為了向大家介紹在使用WebLogic Sever時(shí),能普遍用到的非J2EE開(kāi)發(fā)方面的問(wèn)題。開(kāi)發(fā)者和管理者同樣會(huì)發(fā)現(xiàn)這個(gè)專欄非常有價(jià)值,因?yàn)檫@些文章既適用于開(kāi)發(fā)又適用于最終產(chǎn)品的應(yīng)用。此外,它很大程度上利用了來(lái)自于該領(lǐng)域和工程實(shí)驗(yàn)室的經(jīng)驗(yàn),它提供了對(duì)實(shí)際問(wèn)題的詳細(xì)解答。
JSP預(yù)編譯的必要性
本文著眼于移除潛在的系統(tǒng)性能瓶頸,它通過(guò)解決一個(gè)最普通的問(wèn)題??在服務(wù)器運(yùn)行時(shí)間中的JSP (JavaServer Page)編譯的系統(tǒng)開(kāi)銷問(wèn)題,這個(gè)問(wèn)題困擾著幾乎所有的J2EE發(fā)展計(jì)劃。雖然JSP是在J2EE應(yīng)用范圍內(nèi)呈現(xiàn)動(dòng)態(tài)HTML視圖的理想選擇,但在某種程度上它們會(huì)影響性能,這比錯(cuò)誤的更令人討厭,給人的第一感覺(jué)是該程序很慢。
根據(jù)J2EE規(guī)范,JSP主要是HTML文件,在它里面包含著Java代碼用來(lái)和其他的系統(tǒng)組件進(jìn)行交互以及動(dòng)態(tài)的顯示信息。規(guī)范規(guī)定所有的J2EE編譯應(yīng)用服務(wù)器應(yīng)當(dāng)支持JSP,客戶請(qǐng)求一個(gè)特定的JSP,將:
● 轉(zhuǎn)換JSP從HTML格式成為servlet類型的Java類(Java源格式),用簡(jiǎn)寫的JSP符號(hào)代替完全符合規(guī)定的Java語(yǔ)法
● 將新產(chǎn)生的Java源文件編譯成.class字節(jié)碼形式
● 在新編譯的類上執(zhí)行適當(dāng)?shù)慕涌诜椒ú⑶覍?duì)客戶端請(qǐng)求返回響應(yīng)。
雖然從發(fā)展的觀點(diǎn)來(lái)看對(duì)于在表示層內(nèi)管理動(dòng)態(tài)HTML的產(chǎn)生這是最好的途徑,但它影響到服務(wù)器的運(yùn)行時(shí)間環(huán)境,要求JSP被解析、轉(zhuǎn)變成Java代碼,并且在它去處理一個(gè)特定的客戶端請(qǐng)求之前被編譯。對(duì)最終用戶明顯的影響是,一個(gè)響應(yīng)將會(huì)被延遲知道給定的JSP文件被編譯通過(guò)??紤]到一個(gè)特定的用戶請(qǐng)求可能用到兩個(gè)或多個(gè)JSP文件,因此編譯狀態(tài)必需的時(shí)間增加了很多倍。
更多信息請(qǐng)查看IT技術(shù)專欄