jsp編譯熱門博客列表,用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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:45
下一篇 2024-12-12 12:45

相關推薦

  • Python字元轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智慧等領域廣泛應用。在很多場景下需要將字元串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字元轉列…

    編程 2025-04-29
  • Python中不同類型的列表

    Python是一種功能強大的編程語言,其內置數據結構之一為列表。列表可以容納任意數量的元素,並且可以存儲不同類型的數據。 一、列表的基本操作 Python的列表類型支持許多操作,如…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • Python為什麼輸出空列表

    空列表是Python編程中常見的數據類型,在某些情況下,會出現輸出空列表的情況。下面我們就從多個方面為大家詳細闡述為什麼Python會輸出空列表。 一、賦值錯誤 在Python中,…

    編程 2025-04-29
  • Python定義兩個列表的多面探索

    Python是一種強大的編程語言,開放源代碼,易於學習和使用。通過Python語言,我們可以定義各種數據類型,如列表(list)。在Python中,列表(list)在處理數據方面起…

    編程 2025-04-29
  • Python編程實現列表元素逆序存放

    本文將從以下幾個方面對Python編程實現列表元素逆序存放做詳細闡述: 一、實現思路 一般來說,使用Python將列表元素逆序存放可以通過以下幾個步驟實現: 1. 定義一個列表 2…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29
  • Python字典列表去重

    這篇文章將介紹如何使用Python對字典列表進行去重操作,並且從多個方面進行詳細的闡述。 一、基本操作 首先我們需要了解Python字典列表去重的基本操作。Python中提供了一種…

    編程 2025-04-28
  • Python列表套列表用法介紹

    本文將圍繞Python中的列表套列表展開詳細講解。 一、基本用法 Python中的列表套列表是一種非常常見和實用的數據結構。常見的用法是在一個大列表中嵌套若干個小列表。可以使用以下…

    編程 2025-04-28
  • 如何在Python中判斷列表長度為中心

    在Python中,很多時候我們需要對列表進行操作,而有時候需要根據列表長度來進行一些特定的操作。本文將討論如何在Python中判斷列表長度為中心。 一、使用len()函數判斷列表長…

    編程 2025-04-28

發表回復

登錄後才能評論