From Gossip@caterpillar

語言技術: JSP/Servlet

我們是相互合作的。。。Java EE 的藍圖中,JSP/Servlet是屬於Web層技術,JSP與Servlet是一體的兩面,您可以使用單獨一項技術來解決動態網頁呈現的需求,但最好的 方式是取兩者的長處,JSP是網頁設計人員導向的,而Servlet是程式設計人員導向的,釐清它們之間的職責可以讓兩個不同專長的團隊彼此合作,並降低 相互間的牽制作用。








準備工作
    動態網頁的請求發送大都是透過表單,所以先對表單製作簡單的整理一下,Servlet 容器(Container)主要是管理JSP/Servlet資源的,文件撰寫過程中使用的是Tomcat
 5.5.4。
JSP
    JSP是基於Java語法,只要您瞭解Java的基本語法,就可以只使用JSP來撰寫動態網頁。
  • 基礎入門
先來看看如何撰寫 基本的JSP動態網頁,以及JSP背後運 作的機制,JSP事實上也是轉譯為 Servlet,骨子裡還是個Servlet程式。
  • 隱含物件(Implicit Object)
JSP轉譯之後就 是Servlet,各個隱含物件都對應於 Servlet API中的某個物件,如果您對隱含物件的功能有什麼不瞭解的,查詢Servlet API文件中該物件的說明就可以瞭解了。
  • Action 元素
JSP中有數種類 型的Action元素,有一些使用於 JavaBean,有一些使用於自訂標籤等等,這邊先介紹幾個常用的元素。

JSP 與 Model 1 架構
    在HTML標籤間混合程式碼會使得程式邏輯與網頁邏輯都難以維護,Model 1是將程式碼與網頁邏輯分離的一種架構,JSP中有一些技術用以支持這種架構的實現。
  • JavaBean
JavaBean 是一個純綷的Java類別,它遵守一些規 則與命名方式,它是一個公開(public)的類別,具有公開的setter與getter方法,在JSP中可以使用它將程式的邏輯處理與呈現部份分離。
  •  Expression Language
Expression Language在JSP 2.0中納入了JSP的標準,它定義了變數存取、運算、隱含物件、函式等內容,配合JavaBean或其它標籤庫,可以實現較好的邏輯與視圖分離之目的。

  • 標籤庫(Tag Library)
您可以將一些網頁 格式處理或是限定存取之類的需求,使用標 籤庫來處理,程式邏輯撰寫在標籤處理類別(Tag Handler Class)中,並定義好標籤庫定義檔案(.tld),而在JSP網頁中使用自訂標籤來撰寫網頁。

  • Tag File
Tag File是從JSP 2.0開始新增的功能,主要的目的是讓撰寫JSP網頁的網頁設計人員即使在不懂Java語法的情況下,也可以使用JSP語法來自訂標籤。

Servlet
    JSP網頁最後是轉譯為Servlet,從Java程式設計人員的角度來看,Servlet其實就是一個 Java類別,它實作Servlet介面,通常我們會繼承實作該介面的GenericServlet類別或HttpServlet類別。
  • 基礎入門
如果您瞭解JSP 中的隱含物件之意義,再來瞭解 Servlet中的對應物件,則學習Servlet就不是件難事。

  • Filter
使用 Filter,您可以先對request作一些前置處 理,例如進行身份驗證、過濾不安全的請求、監視統計請求的來源與出處等等,或是對response進行後置處理,例如對輸出先進行壓縮、對XML的呈現進 行轉換等等。

JSP/Servlet 與 Model 2 架構
    這邊藉由實作一個簡單的 Model 2 Web 應用程式,瞭解如何以JSP/Servlet 技術實現一個 Model 2 架構的簡單應用程式。

附錄




  • StarSuite (包含 Java™)
  • Google桌面 (桌面小幫手)
  • Picasa (相簿管理程式)
  • Norton Security Scan (病毒掃描)
  • Spyware Doctor (反間碟軟體)
  • 各種實用軟體工具