本文目錄一覽:
- 1、如何編譯jsp
- 2、開源或免費的JSP博客系統
- 3、JSP的三個編譯指令
- 4、tomcat怎麼編譯jsp文件
- 5、怎麼編譯jsp
- 6、jsp源代碼的編譯
如何編譯jsp
保存時選文件類型選”所有文件”,
然後文件名要加上”.jsp”,
如果你只有一個jsp文件的話,
放到tomcat的webapps下的root下,
然後啟動tomcat,
然後在瀏覽器運行
開源或免費的JSP博客系統
介紹兩個, 都是外國人的作品:
1. Roller Weblogger
2. DLOG4J
1. DLOG4J 3.0是一個多用戶博客系統
2. 以個人應用為出發點增加包括相冊、音樂、論壇、留言板等功能
3. 增加了好友、黑名單功能
4. 允許設置空間的樣式、布局以及關閉和開啟某些功能,功能個性化命名等
5. 全面引入標籤功能,使包括日記、照片、討論均可使用標籤
6. 支持多種友情鏈接包括:WEB、WAP、RSS、站內等
7. 全功能WAP支持
8. 允許設置多個超級管理員對各個空間數據進行管理
技術
1. 升級組件Hibernate-3.1.3, Strus-1.2.9, Lucene 2.0.0
2. 採用最新的可視化編輯器FCKEditor,兼容包括IE,FireFox,Netscape等瀏覽器
3. 支持個人一級域名與空間之間的綁定
4. 採用客戶端標識碼充分確保表單數據的有效性
5. 大量採用緩存提升系統性能
6. 採用純div+css結構開發,便於定製頁面風格
7. 精心為互聯網設計,支持各種集群環境
8. 支持各種操作系統、資料庫以及應用伺服器
中文支持及演示站點:Java自由人
JSP的三個編譯指令
1、JSP的編譯指令是同志引擎的消息,它不直接生成輸出。編譯指令都有默認值,因此開發人員無須為每個指令設置值。常見的編譯指令:
page:該指令是針對當前頁面的指令
include:用於指定包含另一個頁面
taglib:用於定義和訪問自定義標籤
使用編譯指令語法格式:%@ 編譯指令名 屬性名=”屬性值”…%
2、page指令
page指令位於JSP頁面的頂端,一個JSP頁面可以使用多條page指令。page指令屬性:
language:聲明當前JSP頁面使用的腳本語言的種類,因為頁面是JSP頁面,所以通常都是java,默認值也是java,所以通常無須設置。
extends:指定JSP頁面編譯所產生的Java類所繼承的父類,或所實現的介面。
import:用來導入包。默認導入的包:java.lang.*,javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。
session:設定這個JSP頁面是否需要HTTP Session。
buffer:指定輸出緩衝區的大小。輸出緩衝區的JSP內部對象:out用於緩存JSP頁面對客戶瀏覽器的輸出,默認值為8KB,可設為none。
autoFlush:當輸出緩衝區即將溢出時,是否需要強制輸出緩衝區內容。true時輸出,false會在buffer溢出時產生一個異常。
info:設置該JSP程序的信息,也可以看作其說明,可通過Servlet.getServletInfo()方法獲取該值。
errorPage:指定錯誤處理頁面。
isErrorPage:設置本JSP頁面是否為錯誤處理程序。
contentType:用於設定生成網頁的文件格式和編碼字符集,即MIME類型和頁面字符集類型,默認的MIME類型是text/html,默認的字符集是ISO-8859-1。
pageEncoding:指定生成網頁的編碼字符集。
註:因為JSP內建了異常機制支持,所以JSP可以不處理異常,即使是checked異常。
3、include指令:可以將一個外部文件嵌入到JSP文件中,同時解析這個頁面的JSP語句。include既可以包含靜態的文本,也可以包含動態的JSP頁面。語法格式:%@include file=”relativeURLSpec”%
如果嵌入的文件經常改變,建議使用操作指令,因為它是動態的include語句。
需要注意的是,靜態包含還會將被包含頁面的編譯指令也包含進來,如果兩個頁面的編譯指令衝突,那麼頁面就會報錯。
tomcat怎麼編譯jsp文件
一、jsp執行過程圖解
用戶訪問jsp頁面時,jsp的處理過程如下圖所示:
二、預處理階段
客戶第一次請求jsp頁面時,jsp引擎會將jsp文件中的腳本代碼(HTML)和代碼片段(java代碼)全部轉換為java代碼,轉換過程非常直觀:對於HTML文本只需要用簡單的out.println方法包裹,對於java腳本只做保留或簡單的處理。
三、編譯階段
預處理階段把jsp文件解析為java代碼,編譯階段jsp引擎把java代碼編譯成servlet類文件,對於Tomcat,生成的class文件默認情況下存放在Tomcat/work目錄下。
四、響應階段
編譯後的class對象被載入到容器中,並根據用戶的請求生成HTML格式的響應頁面返回給客戶端。
在執行jsp網頁時,通常分為兩個時期:轉譯時期和請求時期。轉譯時期jsp頁面被翻譯成Servlet類,然後編譯成Class文件;用戶請求時期,servlet類被執行,生成HTML響應至客戶端。
五、jsp和servlet的執行速度
jsp的轉譯和請求都在在第一次訪問時進行的,所以用戶在第一次訪問jsp頁面時響應時間會比較長。在之後的請求中,這些工作已經完成,時間延長問題不存在了。在處理後續的訪問時jsp和servlet的執行速度是一樣的。
六、容器、jsp容器、jsp引擎
jsp要轉譯為servlet,但是servlet沒有main()方法,servlet對象的創建、方法的調用由web容器來實現。以Tomcat為例,先看一下Tomcat的總體結構:
從圖中可以看出,Tomcat的核心組建是connector和container,container就是容器。容器就是負責管理控制servlet的應用程序。圖中的jasper就是解析jsp的jsp引擎。Tomcat既是servlet容器又是web伺服器,也是jsp引擎。
怎麼編譯jsp
有種簡單辦法,改變tomcat的啟動方法:
進入其安裝目錄,找到bin文件夾,雙擊tomcat6.exe,一個類似DOS的窗口便打開了。這樣tomcat 也可以正常工作。
而且還多了一個好處:當jsp出錯時,錯誤信息還可以在上述窗口中顯示出來。
不是非得手工編譯jsp文件之後才能訪問它;只要直接通過tomcat訪問到了某個jsp頁面,那個頁面就已經被伺服器自動編譯了。
另外,並不是後綴名改為jsp,那個文件就是jsp文件了,還與那個文件的內容是否符合jsp語法有關。
jsp源代碼的編譯
任何工具都不能完成對java 文件和Jsp文件的編譯,只能由Tomcat伺服器利用JVM虛擬機才能完成對文件的編譯。
無論你使用的是什麼工具JSP的轉義和編譯都是由Tomcat伺服器完成的。
jsp源代碼中的關於html的部分最後會轉譯成Servlet文件,這也是個java文件最後又伺服器編譯成class 文件。你看一下這個文件夾下的文件就全明白了Tomcat\work\demo\org\apache\jsp
JSP頁面上的所有HTML部分都會轉換成Java文件存放在這個文件夾下,包括伺服器編譯完的生成的Class文件。
由Tomcat編譯的。每次重起Tomcat伺服器都要對伺服器中的java文件編譯,生成Class文件,存放在WEB-INF文件夾下classes文件下。JSP頁面的內容會先轉義成相應的Servlet形式文件,這些文件存放在Tomcat\work\demo\org\apache\jsp文件夾下,並且有相應界面的java文件,在第一次對相應的頁面請求時伺服器會自動對相應JSP頁面的java文件進行編譯,生成class文件。JSP的編譯過程是先轉義然後再編譯,當第二次請求時就不需要再編譯了。
所以JSP是一次編譯多次使用。
但是如果你後台的Java類發生了改變,那麼你必須重起啟動伺服器對Java類文件進行編譯。
你看下關於JSP的生命周期。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241942.html