訪問jsp頁面需要預編譯
A. JSP有什麼優點
JSP的優點:
·對於用戶界面的更新,其實就是由 Web Server進行的,所以給人的感覺更新很快。
·所有的應用都是基於伺服器的,所以它們可以時刻保持最新版本。
·客戶端的介面不是很繁瑣,對於各種應用易於部署、維護和修改。
B. Jsp文件運行時先被預編譯為什麼文件;
首先要說嗎jsp的本質,jsp本質是servlet的一種實現方式。
那麼既然是servlet,也就是說是java類,類的定義文件是.java 格式 例如: test.java
那麼以.jsp結尾的格式的文件肯定就不是java 類了啊。那麼怎麼轉換成java類呢。
好的 先根據.jsp文件轉換成.java文件。生成了java文件也就是java類了,那麼jsp就被編譯成了class文件了
C. jsp預編譯問題
這個方法是到目前為止進行JSP預編譯最方便的途徑( flick a switch 途徑) 他有許多指出來毫無意義的缺點 如果一個錯誤在JSP的編譯期間或在部署(或重新部署) 的時候發生 Web 應用程序的預編譯將會在例外處暫停 另外 如果在一個特定的Web應用程序裡面有許多JSP文件的情況 declarative預編譯顯著的影響著部署時間 阻斷部署直到所有的文件都被編譯 對於大型的應用程序 當出現數以百計的JSP 文件以declarative預編譯被執行的時候 這種部署時間趨向以分鍾來計算 (在某些情況 到 分鍾 其他情況可能更長時間) 設想開始一個伺服器實例 在一個特定的Web應用程序周期內進入部署狀態用declarative 預編譯激活李模坦 如果在應用內有很多的JSP文件以及部署 接近完成時就已經花費了大量的時間 在編譯期間由於拋出一個例外而突然失敗 當然會引起挫折感 雖然起先看起來比較方便 但declarative 編譯對生產系統管理造成重大的風險 因此應該在經過慎重的考慮後再使用它
程序方式的預編譯
在WLS下最可靠的預編譯JSP的方法是使用Java命令行 weblogic jspc 它位於WLS安裝的lib目錄之下的weblogic jar文件中 這個工具允許開發者在發展階段和在部署前解決編譯時間問題的時候編譯需要的JSP文件 它也為生產系統提供一個有能力實現JSP預編譯的管理員 這種用法的主要好處是
● 文件可以被預編譯一次然後可以被多次部署 (這不被伺服器實例的重復利用所影響)
● 編譯時的例外可以被預先解決而不影響部署
● 類可以通過集群部署
使用weblogic jspc的缺點是需要人工干涉 並且它在開發時並當在JSP文件變得過時的時候必須被重新運行 然而 考慮到前面的兩個方法的討論 我們幾乎不能將這種不方便當成該方法的一個缺點 因此推薦它作為碼數最可靠和最靈活的機制來實現JSP預編譯
執行weblogic jspc
為了更有效的使用weblogic jspc 你必須首先了解它的用法和語法 這篇文章我們將利用WLS SP 的工具的功能 注意 下面給出的語法和最好的慣例應該應用於WLS 的所有版本以及新的WLS
為了調用命令行JSP編譯器(weblogic jspc) 你必須確定下面的內容
● PATH環境變數必須包含你機器上安裝的J SE 包的二進制目錄(例如 /opt/j se/ /sdk/bin 或者c:sunsoftj se sdkin) 以獲得JVM運行時的支持 如果你打算使用javac作為你的JSP編譯的Java編譯器 要確定PATH包含全部Java 的軟體開發工具包(SDK)的二進制目錄 並且不僅僅是JRE(Java Runtime Engine Java運行時間引擎) 因為沒有編譯器和JRE關聯 如果你打算使用一個編譯器而不是javac(例如 Jikes) 也要為那個編譯器確定在PATH中包含正確的目錄
● 設置Java系統類路徑用來包含來自WLS SP 安裝目錄的weblogic jar文件 通過在產品庫目錄下默認建立(例如 /opt/bea/wlserver /lib/weblogic jar或者c:eawlserv er libweblogic jar) 此外 請確定在JSP編譯階段中你可哪桐能需要的參考類(JAR或類文件)也在你的類路徑中
在第一次執行weblogic jspc之前 你需要測試你的命令行配置是否是按上述配置 它可以通過簡單運行一個WLS版本檢查來完成 使用命令 java weblogic version 這個命令應該返回下面的內容
which should return the following:
WebLogic Server SP / / : :
#
WebLogic XML Mole SP / /
: : #
如果你的輸出和上面的不相似(和你運行的版本相對應) 在進行JSP預編譯前 要重新訪問PATH和類路徑變數將其設置成你的當前命令行環境
一般的weblogic jspc的語法如下面給出的
java weblogic jspc [options] …
在一個編譯器的單一調用中默認情況下JSP編譯器可以編譯一個JSP文件或一組JSP文件 並且可以通過設置命令行選項 編譯器可以以不同的方法工作 下面給出一個例子
java
weblogic jspc
webapp mywebapp
piler javac
pileFlags g
classpath /u/apps/dist/src/lib jar
d
package slackwerks mywebapp jsp
mentary
keepgenerated
k
mywebappindex jsp
這篇文章只列舉了一個例子 如果你要想更加了解weblogic jspc如何能在你的環境中使用和管理的話 請參閱/wldj 我們提供了對整套的工作選項 使用的含義以及相關聯問題的討論
結論
lishixin/Article/program/Java/hx/201311/25749
D. 什麼是 jsp 的預編譯特徵
1.2 JSP技術特徵
JSP技術所開發的Web應用程序是基於Java的,它擁有Java語言跨平台的特性,以及業務代碼分離、組件重用、基礎Java Servlet功能和預編譯等特徵。
1.2.1 跨平台
既然JSP是基於Java語言的,那麼它就可以使用Java API,所以它也是跨平台的,可以應用在不同的系統中,如Windows、Linux、Mac和Solaris等。這同時也拓寬了JSP可以使用的Web伺服器的范圍。另外,應用於不同操作系統的資料庫也可以為JSP服務,JSP使用JDBC技術操作資料庫,從而避免了代碼移植導致更換資料庫時的代碼修改問題。
正是因為跨平台的特性,使得採用JSP技術開發的項目可以不加修改地應用到任何不同的平台上,這也應驗了Java語言的"一次編寫,到處運行"的特點。
1.2.2 業務代碼分離
採用JSP技術開發的項目,通常使用HTML語言來設計和格式化靜態頁面的內容,而使用JSP標簽和Java代碼片段來實現動態部分。程序開發人員可以將業務處理代碼全部放到JavaBean中,或者把業務處理代碼交給Servlet、Struts等其他業務控制層來處理,從而實現業務代碼從視圖層分離。這樣JSP頁面只負責顯示數據即可,當需要修改業務代碼時,不會影響JSP頁面的代碼。
1.2.3 組件重用
JSP中可以使用JavaBean編寫業務組件,也就是使用一個JavaBean類封裝業務處理代碼或者作為一個數據存儲模型,在JSP頁面甚至整個項目中都可以重復使用這個JavaBean。JavaBean也可以應用到其他Java應用程序中,包括桌面應用程序。
1.2.4 繼承Java Servlet功能
Servlet是JSP出現之前的主要Java Web處理技術。它接受用戶請求,在Servlet類中編寫所有Java和HTML代碼,然後通過輸出流把結果頁面返回給瀏覽器。其缺點是:在類中編寫HTML代碼非常不便,也不利於閱讀。使用JSP技術之後,開發Web應用便變得相對簡單快捷多了,並且JSP最終要編譯成Servlet才能處理用戶請求,因此我們說JSP擁有Servlet的所有功能和特性。
1.2.5 預編譯
預編譯就是在用戶第一次通過瀏覽器訪問JSP頁面時,伺服器將對JSP頁面代碼進行編譯,並且僅執行一次編譯。編譯好的代碼將被保存,在用戶下一次訪問時,直接執行編譯好的代碼。這樣不僅節約了伺服器的CPU資源,還大大提升了客戶端的訪問速度