JSP 與其他相關的動態網頁技術【二】
本文摘錄自旗標 F8535「JSP 網站開發實務」
一書
[為何需要動態資料]
依照定義, 若網站依據不同的用戶端要求, 回應
不同的內容, 就稱為動態內容。然而, Web 伺服
器毋須親自處理動態內容。動態內容可以委託
給其他的程式來處理, 處理後的資料, 再藉由 W
eb伺服器傳回用戶端, 也算是動態內容的一種。
以下 2 個例子都屬於動態內容:
□ Web 伺服器上有個在背景執行的程式, 每隔
5 分鐘自動在伺服器上的 HTML 文件頁尾加
入隨機選取的名言嘉句。
□ 報社的寫作系統, 可以讓記者隨時輸入新的
頭條新聞, 然後將文章自動轉換為 HTML 文
件儲存在 Web 伺服器上, 供外界瀏覽。
上述的這 2 個例子, Web 伺服器所提供的動態
內容, 無須程式員自行開發程式, 動態內容是
由安裝在 Web 伺服器上的其他程式來處理 (圖
2): (點選圖 2 可放大)
圖 2 動態內容可以由 Web 伺服器上其他的程式
來處理
Web browser ~ 瀏覽器
1. Request a URL ~ 要求 URL
2. Response with correct file ~ 回應要求的
檔案
Web server ~ Web 伺服器
File 1 ~ 檔案 1
File 1 ~ 檔案 2
Normal, non-web program modifies data (Whe
never it needs) ~ Web 伺服器上其他的程式可
修改這些檔案, 提供動態內容
然而, 上述的方式並不是讓使用者與網站互動的
最佳解決方案。舉例來說, Web 伺服器將用戶端
的搜尋要求委託給某個程式來處理, 該程式可能
是以 HTML 連結來呈現搜尋的結果, 例如:
==========================================
...
Search
for "aardvark and lizard"
Search
for "aardvark and mouse"
Search
for "aardvark and octpus"
...
==========================================
此 HTML 文件需另存一份到 Web 伺服器後, 才
能傳回給用戶端。這種方式, 當用戶端增多時,
伺服器便會儲存無數的 HTML 文件, 不僅造成
硬碟空間的浪費, 也使得搜尋變得沒有效率。
此外, 許多網站 (例如:網頁郵件伺服器) 需
要處理用戶端輸入的各種資料, 並不只是單純
地傳送動態 HTML 文件, 這種網站必須透過撰
寫 Web 應用程式, 才能處理用戶端的要求。最
常見的例子便是購物網站, 廠商會將客戶資料
儲存在資料庫, 並自動傳送確認訂單的 Email,
只傳送動態 HTML 文件已無法滿足現今的需求
。
基於上述的原因, 各種伺服器端的動態網頁技
術便因應而生, JSP 就是其中一種。我們將介
紹一些 JSP 的前輩以及競爭者, 來幫助讀者
更了解 JSP。
[共同閘道介面 (Common Gateway Interfa
ce)]
共同閘道介面 (簡稱 CGI) 是最先被接受的動態
網頁技術, 它提供了 Web 伺服器與其他外部程
式的溝通介面。作業系統提供有限的管道來讓執
行中的程式彼此溝通, 例如:在要溝通的程式中
輸入特定的參數, 或是設定環境變數。CGI 利用
作業系統提供的這些管道來讓 Web 伺服器與外
部程式溝通。
如圖 3, 用戶端要求 CGI 程式後, Web 伺服
器便會將用戶端的相關資訊傳入 CGI, 並執行該
程式, CGI 程式將處理的結果傳回 Web 伺服器,
伺服器再回應給用戶端:(點選圖 3 可放大)
圖 3 Web 伺服器執行 CGI 程式, 便能動態回應
用戶端的要求
Web browser ~ 瀏覽器
1. Request a URL ~ 要求 URL
2. Run program, passing information about
request ~ 傳入用戶端相關參數, 並執行 CGI
程式
3. Sends output (HTML, etc.) ~ 傳回執行結果
(例如:HTML 文件)
4. Transmits response (HTML, etc.) ~ 回應用
戶端要求 (例如:HTML 文件)
Web server ~ Web 伺服器
CGI program ~ CGI 程式
CGI 並不專屬於特定的程式語言, 換言之, CGI不
是特定與語言的 API (Application Programming
Interface)。CGI 程式可用 Perl、C、LISP, 或
甚至是 Java 來開發。CGI 標準只定義一系列的
慣例, 程式只要遵循這些慣例, 便可以和支援
CGI 的 Web 伺服器溝通。
CGI 標準中規範的慣例並不多, 所以 CGI 程式很
有彈性。然而, 其缺點是 CGI 程式很佔 Web伺服
器的資源, 因為對於每一個用戶端要求, Web 伺
服器必須執行一個 CGI 程式來回應。
====定義===================================
在作業系統領域中, 一個程式的執行環境稱為
執行程序】(Process), 因此較正式的說法是:對
於每一個用戶端要求, Web 伺服器必須產生一個
用來執行 CGI 的程序。
===========================================
--- 未完待續
我要買這本書
| |
.........................................︽
..........................................
|
|
|