<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=JSP</id>
	<title>JSP - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=JSP"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;action=history"/>
	<updated>2026-05-07T13:37:08Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=351426&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=351426&amp;oldid=prev"/>
		<updated>2025-08-21T07:44:36Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;a href=&quot;https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;amp;diff=351426&amp;amp;oldid=351418&quot;&gt;顯示變更&lt;/a&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=351418&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=351418&amp;oldid=prev"/>
		<updated>2025-08-21T07:42:41Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;a href=&quot;https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;amp;diff=351418&amp;amp;oldid=350665&quot;&gt;顯示變更&lt;/a&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=350665&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=350665&amp;oldid=prev"/>
		<updated>2025-08-19T14:02:07Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;a href=&quot;https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;amp;diff=350665&amp;amp;oldid=350617&quot;&gt;顯示變更&lt;/a&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=350617&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=JSP&amp;diff=350617&amp;oldid=prev"/>
		<updated>2025-08-19T14:00:44Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;JSP&amp;#039;&amp;#039;&amp;#039;（全稱&amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;akarta&amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;erver&amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;ages，曾稱做&amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava&amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;erver&amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;ages）是由 Sun Microsystems 公司主導建立的一種動態網頁技術標準。JSP 部署佇咧網路等服器頂懸，會當回應客戶捀傳送的請求，並且根據請求內容動態地生成 HTML、XML 抑是其他格式文件的 Web 網頁，然後轉來予咱請求者。JSP 技術以 Java 語言成做手稿的語言，為使用者的 HTTP 求提供服務，並且會當佮侍服器上的其他 Java 程式共同處理複雜的業務需求。&lt;br /&gt;
&lt;br /&gt;
JSP 將 Java 程式碼佮特定變動內容1875入到靜態的頁面中，實現以靜態頁面為模仔，動態生成其中的部份內容。JSP 引入去予人叫做「JSP 動作」的 XML 標籤，用來呼叫內建功能。另外咧，會當建立 JSP 標籤庫，然後像使用標準 HTML 抑是 XML標籤仝款使用𪜶。標籤庫能增強功能和侍服器效能，而且無受跨平台的問題的限制。JSP 檔案咧執行的時會予其編譯器轉換做更原始的 Servlet 程式碼。JSP 編譯器會當共 JSP 檔案編譯成用 Java程式碼寫的 Servlet，然後才由 Java 編譯器來編譯做快速執行的二進位機器碼，嘛會當直接編譯做二進位碼。&lt;br /&gt;
&lt;br /&gt;
==綜合==&lt;br /&gt;
&lt;br /&gt;
JSP 對二鋪零版本開始，增加了表達式語言（EL）， 以提供閣較緊較簡單的建立新標籤的方法，並且允准開發者建立 Velocity 式板仔。如舊版本代碼「` Hello , &amp;lt; %=request . getParameter ( &amp;quot; visitor &amp;quot; ) % &amp;gt; `」會當簡省做「` Hello ,$ { param . visitor }”`。&lt;br /&gt;
&lt;br /&gt;
==特點==&lt;br /&gt;
&lt;br /&gt;
* 會當一改我模仔的方式簡單、高效地添加動態網頁的內容。&lt;br /&gt;
* 通利用 JavaBean 佮標籤庫技術復用捷用的功能代碼（設計好的組件容易實現重複利用，減少愛重複勞動）。 標籤庫毋但有紮有通用的內建標籤（JSTL )，而且支援可延伸功能的自訂標籤。&lt;br /&gt;
* 有良好的工具支援。&lt;br /&gt;
* 繼承矣 Java 語言的相對用性。&lt;br /&gt;
* 繼承矣 Java 的迒平台的優勢，實現「 一改編寫，四界執行」。 因為支援 Java 佮其相關技術的開發平台濟，網站開發人員會當選擇佇上適合家己的系統平台頂進行 JSP 開發；無仝環境下開發的 JSP 專案，佇咧所有客戶頭頂懸攏會當順利提。&lt;br /&gt;
*頁面當中的動（控制變動內容的部份）／ 靜（內容無需要變動的部份）區域以分散但是閣有序的形式組合做伙，會當予人閣較直觀地看出頁面代碼的規个結構，嘛予設計頁面效果佮程式邏輯這二部份工課較好分離（外觀視圖佮邏輯分離）。 對而且方便分配人員並行揮各自長處，實現高效地分工合作。&lt;br /&gt;
* 會當佮其他的企業級 Java 技術相配合。JSP 會當干焦專門負責頁面中的資料呈現，實現分層開發。&lt;br /&gt;
&lt;br /&gt;
==有包含內容==&lt;br /&gt;
&lt;br /&gt;
===JSP 指令===&lt;br /&gt;
&lt;br /&gt;
JSP 指令控制 JSP 編譯器按怎去生成 servlet，以下是會使用的指令：&lt;br /&gt;
&lt;br /&gt;
* 包含講指令 include–包含講令通知 JSP 編譯器共另外一个檔案完全包含入去當前檔案中。效果就敢若予人包含檔案的內容直接貼上到當前檔案中仝款。這个功能佮 C 預處理器所提供的足類似的。予人包含檔案的副檔名一般攏是 &amp;quot; jspf &amp;quot;（即 JSP&amp;#039;&amp;#039;&amp;#039;Fragment&amp;#039;&amp;#039;&amp;#039;，JSP 片段）:&lt;br /&gt;
&lt;br /&gt;
* 頁面指令page–頁面指令有以下幾个選項：&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;佇仝一个 JSP 檔案中干焦「import」匯入頁面指令會當予人加改使用。&lt;br /&gt;
&lt;br /&gt;
* 標籤庫指令 taglib–標籤庫指令講欲使用的 JSP標籤庫。該指令需要指定一个字首 prefix（和 C + + 的號名空間足類似的）佮標籤庫的描述 URI :&lt;br /&gt;
&lt;br /&gt;
===JSP 指令碼元素佮變數===&lt;br /&gt;
&lt;br /&gt;
====標準指令碼變數====&lt;br /&gt;
&lt;br /&gt;
以下是永遠會當用的指令碼變數：&lt;br /&gt;
&lt;br /&gt;
* out：JSPWriter，用來寫入回應流的資料&lt;br /&gt;
* page：servlet 自身&lt;br /&gt;
* pageContext：一个 PageContext 實例包括和規个頁面相聯絡的資料，一个予定的 HTML 頁面會當佇咧幾个 JSP 之間傳遞。&lt;br /&gt;
* request：HTTP request（請求）東西&lt;br /&gt;
* response：HTTP response（回應）東西&lt;br /&gt;
* session：HTTPsession（侍服器捀對談）東西&lt;br /&gt;
&lt;br /&gt;
====指令碼元素====&lt;br /&gt;
&lt;br /&gt;
有三个基本的指令碼元素，作用是 JAVA 代碼會當直接插入去 servlet .&lt;br /&gt;
&lt;br /&gt;
* 一種是聲明標籤，佇咧 JAVA SERVLET的類體內底囥一个變數的定義。靜態的資料成員嘛會當按呢定義。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
* 一種是指令碼標籤，佇咧 JAVA SERVLET 的類的 \ _ jspService ( ) 方法內底囥入所包含的語句。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
*一種是表達式標籤，佇咧 JAVA SERVLET 伊的類中囥入等等的表達式，表達式注意袂當分號結尾。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
===JSP 動作===&lt;br /&gt;
&lt;br /&gt;
JSP 動作是系列會當呼叫內建佇咧網路侍服器的功能的XML 標籤。JSP 提供了後動作：&lt;br /&gt;
&lt;br /&gt;
====標籤樣例====&lt;br /&gt;
&lt;br /&gt;
=====jsp : include=====&lt;br /&gt;
&lt;br /&gt;
=====jsp : forward=====&lt;br /&gt;
&lt;br /&gt;
佇本例中，請求傳達到 &amp;quot; subpage . jsp &amp;quot;，而且請求的處理權袂閣倒轉去進前者。&lt;br /&gt;
&lt;br /&gt;
=====jsp : useBean=====&lt;br /&gt;
&lt;br /&gt;
scope 屬性會當是 request , page , session or application，伊有以下用意：&lt;br /&gt;
&lt;br /&gt;
* request—該屬性咧請求的性命周期內有效，一旦會當請求被所有的 JSP 頁處理了後，按呢遮爾該屬性就袂當參照。&lt;br /&gt;
* page—屬性只是做前頁內底的效果。&lt;br /&gt;
* session—該屬性佇咧使用者對談的性命周期內有效。&lt;br /&gt;
* application—該屬性佇各種狀況之下攏有效，並且永遠袂予人變做袂當參照，佮全域變數 global variable 相仝。&lt;br /&gt;
&lt;br /&gt;
欲講一个例將會用一个建立一个類別的實例，並且共該實例儲存佇咧屬性中，該屬性將佇該請求的性命周期內有效。伊會當佇所有的被包含抑是對頭頁面（上代先接收請求的頁面）斡向來的 JSP 頁之間共享。&lt;br /&gt;
&lt;br /&gt;
===JSP 標籤庫===&lt;br /&gt;
&lt;br /&gt;
除了 JSP 注文義動作以外，開發者閣會使使用 JSP 標籤擴充 API 添加𪜶自訂的 _ 動作 _。開發者寫一種實現一个標籤的介面佮一个標籤庫的 XML 描述檔案的 JAVA 類，這就有法度指定標籤佮實現標籤的 JAVA 類請看如下 JSP：&lt;br /&gt;
&lt;br /&gt;
JSP 編譯器共會載入去 mytaglib . tld 這乎 XML 檔案，然後會當看著標籤 _ myaction _ 由 JAVA 類 _ MyActionTag _ 實現。做標籤頭一擺佇咧檔案中使用的時陣，將會建立一个 MyActionTag 的實例。然後（而且逐改該標籤被使用的時陣）， 當出現開始標籤的時陣，將會呼叫 doStartTag ( ) 方法，根據開始標籤的結果，來決定欲按怎處理標籤的主體。 主體是講開始標籤佮結束標籤之間的文字。這乎 doStartTag ( ) 方法將會返回如下之一：&lt;br /&gt;
&lt;br /&gt;
* SKIP \ _ BODY-標籤之間無做處理。&lt;br /&gt;
* EVAL \ _ BODY \ _ INCLUDE-著標籤之內主體進行賦值。&lt;br /&gt;
* EVAL \ _ BODY \ _ TAG-對標籤之內主體進行賦值並共結果輸出到流（儲存佇咧標籤的主體內容屬性中）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;若標籤擴充 BodyTagSupport 類，做主體被執行的時會咧呼叫 doEndTag ( ) 進前呼叫 doAfterBody ( ) 方法。應該方法定佇咧實現迴箍結構。&lt;br /&gt;
&lt;br /&gt;
結束標籤出現的時陣，伊會哀叫 doEndTag ( ) 方法，該辦法會返回如下兩做之一：&lt;br /&gt;
&lt;br /&gt;
* EVAL \ _ PAGE-表示 JSP 檔案的賰部份將會被執行。this indicates that the rest of the JSP file should be processed .&lt;br /&gt;
* SKIP \ _ PAGE-表示將袂閣有閣較濟執行操作。當前 JSP 頁交出控制權。就象咧轉動作中的作用仝款。&lt;br /&gt;
&lt;br /&gt;
寫真濟 myaction 標籤 tag 會有一个類似下跤例子的用佇實現的類似：&lt;br /&gt;
&lt;br /&gt;
==在地化==&lt;br /&gt;
&lt;br /&gt;
JSP 的在地化是通過佮 JAVA 應用程式相仝的方式完成的，就算是用資源包。&lt;br /&gt;
&lt;br /&gt;
==模型-視圖-控制器模式==&lt;br /&gt;
&lt;br /&gt;
為著欲共表現層（presentation）對請求處理（request processing）佮資料儲存（data storage）中分離開來（按呢加真利開發、查錯佮功能擴充）， 昇陽公司推薦佇 JSP 檔案中使用一種叫做模型-視圖-控制器（MVC）的架構模式。按呢設計，做使用者存取網站頂的特定網址的時陣，使用者的處理請求會先對網站侍服器取得著，然後先交由網站的控制器程式來做初步處理。使用者的存取請求可能愛加種多樣，比如查詢資訊抑是進行資訊料計算攏是捷看的網站的業務。控制器程式會初步判斷使用者呼請求的種類，然後共使用者請求轉發予佮特定業務對應的 Servlet 程式抑是另外一个獨立的 JSP 檔案進行業務處理。做請求處理了後，閣迵過一个專門負責輸出資訊的 JSP 頁以清楚、美觀的方式向使用者的瀏覽器輸出結果。我簡來講，先由控制器攔截使用者請求並做初步判斷，才由業務處理程式存取資料（對資料庫內底存取）佮處理業務，最後由視圖組件生成結果頁面並行送結果予使用者。其中 JSP 一般用做展示輸出結果，會當用展示經過 Servlet 查詢抑是處理了後的結果；嘛會當用一个 JSP 檔案處理業務邏輯，閣用另外一个 JSP 檔案展示結果。揤功能做這款的檔案拆分（ 所以講足由一个泛浡的 JSP 頁面包攬所有功能）是為著便於團隊分工。MVC 本身是一種由來已經久的設計思想，是因為 JSP 的技術只是實現 MVC 架構的流行方案之一。Struts 和 Spring 框架等幾若種流行的網站建設框殼攏是因為 MVC 模式設計的。&lt;br /&gt;
&lt;br /&gt;
==JSP 和 Servlets==&lt;br /&gt;
&lt;br /&gt;
對架構頂懸講，JSP 會當予人看做是對 Servlets 進階提煉而成做 JAVA Servlet 二嬸一API 的擴充來應用。Servlets 和 JSP 上早嘛是攏由 Sun Microsystems（日頭公司）開發的。對 JSP 一鋪二版本以來，JSP 因為 Java Community Process（有人咧譯做：Java 社群組織）開發模式下。JSR 抹五十三規定矣 JSP 一孵二和 Servlet 二鋪四的規範，JSR 抹一百五十二規定矣 JSP 二鋪零的規範。二空空六年五月，JSP二嬸一的規範作為 Java EE 無五的一部份，佇咧 JSR 鋪排兩百四十五中發布。&lt;br /&gt;
&lt;br /&gt;
靜態資料佇輸入檔案內底的內容佮輸出予 HTTP 回應的內容完全一致。現此時，該 JSP 輸入檔案會是一个無內嵌 JAVA抑是動作的 HTML 頁面。而且，客戶捀每改請求攏會得著仝款的回應內容。&lt;br /&gt;
&lt;br /&gt;
===看仿===&lt;br /&gt;
&lt;br /&gt;
不管 JSP 編譯器是生成 SERVLET 的 JAVA 原始碼，抑是直接發布二進位碼，了解一下 JSP 編譯器是按怎共檔案轉做一个 JAVA SERVLET，攏是足有幫助的。比如講，輸入看覓一下 JSP 佮伊最後生成的 JAVA SERVLET：&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Input JSP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Resulting servlet&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* JSTL&lt;br /&gt;
* Java 企業版&lt;br /&gt;
* JavaServer Faces&lt;br /&gt;
* Java Servlet&lt;br /&gt;
* SSJS&lt;br /&gt;
* WAR ( file format )&lt;br /&gt;
* EAR ( file format )&lt;br /&gt;
* JAR ( file format )&lt;br /&gt;
* Tomcat 侍服器&lt;br /&gt;
&lt;br /&gt;
==參考資料==&lt;br /&gt;
&lt;br /&gt;
===文內參照===&lt;br /&gt;
&lt;br /&gt;
===冊目===&lt;br /&gt;
&lt;br /&gt;
* Kin-manChung . JavaServer Pages Specification ( pdf ) 二嬸三 . 甲骨文公司 . 二千空一十三 [二空一八年三月十六] .&lt;br /&gt;
* Hans Bergsten . JavaServer Pages 三 . Sebastopol , California : O&amp;#039;Reilly . 兩千空三 [二千空六孵七孵二十] . ISBN 空白五百九十六鋪五百六十三鋪六 .（原始內容存檔佇咧二十九石十七）.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* Sun&amp;#039;s JSP product description&lt;br /&gt;
* JSR 兩百四十五 ( JSP 二嬸一 )&lt;br /&gt;
* JSR 一仔五 ( JSP 二孵空 )&lt;br /&gt;
*JSR 五十三 ( JSP 一孵二 )&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>