servlet VS CGI
1)servlet 可移植 跨平台 CGI 不行
2)在傳統 CGI 中每個請求都要啟動一個新程序,若 CGI 程式的本身執行時間較短,啟動程序所需要的進行所需要的開銷很可能反而超過實際執行的時間;servlet,每個請求由輕量級的 java 線程處理
3)在傳統 CGI 中,若有 N 個并發的對同一個 CGI 的請求,該 CGI 的程式代碼在記憶體中重載了 N 次,對于 servlet,處理請求的是 N 個線程,隻要一份 servlet 類代碼
如何實作 servlet 單線程模式
要實作單線程模式,可以在配置檔案中修改 isThreadSafe 屬性,比如,<%@page isThreadSafe=”false”%>
servlet 頁面間對象傳遞的方法有幾種
用 request,session,application。Cookie 等方法實作頁面間的對象傳遞。
jsp VS servlet
jsp 是 servlet 技術的擴充,本質上是 servlet 的簡單方式,jsp 編譯後是“類 servlet”。他們最主要額不同在于:servlet 的應用邏輯在 java 檔案中,并且完全從表示層中的 html 分離出來。Jsp 是 java 和 html 可以組合為一個擴充名為.jsp 的檔案。Jsp 側重視圖, servlet 側重控制邏輯。
<jsp:include page=”include.jsp” flash=”true”> <jsp:forword page=”next.jsp”>
前者頁面不會轉向 include 所指向的頁面,隻顯示該頁的結果,首頁面還是原來的頁面,指向完以後還會回來,相當于函數調用,并且可以帶參數。後者完全轉向新頁面,不會再回來,相當于 goto 語句。
内置對象
1)request:使用者端的請求,此請求會包含來着 get or post 請求的參數。
2)response:網頁傳回使用者端的響應。
3)pageContext:網頁的屬性
4)session:與請求有關的會話
5)application:servlet 正在執行的内容
6)out:傳送回應的輸出
7)conig:servlet 的部件
8)page:gsp 網頁本身
9)exception:網頁錯誤
哪些動作(6 個)
1)jsp:include 在頁面被請求時,引入一個檔案
2)jsp:useBean 尋找 or 執行個體化一個 JavaBean
3)jsp:setProperty 這隻 javaBean 的屬性
4)jsp:getProperty 輸出某個 javaBean 的屬性
5)jsp:forword 把請求轉到一個新頁面
6)jsp:plugin 根據浏覽器類型為 java 插件生成 object or embed 标配
動态 include 與靜态 include
- 動态 include 用 jsp:include 動作實作,它總是會檢查所包含檔案中的變化,使用于包含動态頁面
- 靜态 include 用 include 僞碼實作,不會檢查所含檔案的變化,适用于包含靜态頁面。