2012年10月28日 星期日

《最新JSP 2.1動態網頁技術實作》筆記

一、JSP 基本觀念

1.JSP 運作模式:

第一次呼叫時,Web Container 裡的 JSP 引擎會先將 JSP 網頁編譯為 Java Servlet,接著丟給 Servlet 引擎執行。第二次呼叫若未再更改,則直接交由 Servlet 引擎執行。

*JSP 是在 HTML 標記中內嵌 Java 程式碼;Servlet 是在 Java 程式碼裡內嵌 HTML 標記。


2.Servlet 生命週期:

(1)載入 servlet 類別

(2)建立 servlet instance

(3)執行初始化

(4)呼叫 service 方法

(5)摧毀 servlet


3.JSP 生命週期:

(1)將 JSP 轉譯為 servlet

(2)編譯 servlet 為 bytecode

(3)載入 servlet 類別

(4)建立 servlet instance

(5)執行初始化

(6)呼叫 _jspService 方法

(7)摧毀 JSP 網頁


4.JSP 組成元素:

(1)註解:
<%-- 註解 --%>

(2)宣告:
<%! 宣告 %>

(3)前導標記:
<%@ 前導指令 %>
  • include:匯入外部檔案
  • page:設定網頁特性
  • taglib:使用自訂的 JSP 標記
(4)Scriptlet:
<% 程式碼 %>

(5)運算式標記:
<%= 運算式 %>


5.JSP 的隱含物件:

(1)取得用戶端傳送資料或系統資訊:request

(2)回應伺服器端處理結果或訊息至用戶端:response

(3)參照資料的輸出:out

(4)處理共用的資料:application

(5)處理個別使用者的資料:session

(6)參照到 JSP 網頁編譯後 Servlet 的資訊:config

(7)代表目前的 JSP 網頁物件:page

(8)存取或處理系統執行時的各項資訊:pageContext

(9)處理錯誤:exception




二、資料庫連結

1.存取資料庫的步驟:

(1)載入 JDBC 驅動程式

(2)透過DriverManager 類別建立 Connection 物件

(3)透過 Connection 物件建立 Statement 物件

(4)透過 Statement 物件執行 SQL 敘述

(5)取得執行後的 ResultSet,或是被異動的資料筆數

(6)進行資料的處理

(7)關閉 Statement 物件

(8)關閉 Connection 物件


2.DriverManager 類別的方法:

(1)以指定的參數建立資料庫連線:
getConnection(String url, String user, String password)

(2)取出目前載入 JDBC 驅動程式的集合:
getDrivers()

(3)取得登入資料庫的最長允許時間(秒):
getLoginTimeout()

(4)以指定的秒數設定登入資料庫的最長允許時間:
setLoginTimeout(int sec)


3.Connection 介面的方法:

(1)立即關閉目前的資料庫連線:
close()

(2)讓同一交易中所有的資料庫異動作業生效:
commit()

(3)建立一 Statement 物件,以便執行不帶參數的 SQL 敘述:
createStatement()

(4)取得目前 Connection 物件的自動 commit 狀態:
getAutoCommit()

(5)取得目前連線資料庫的基本資料物件:
getMetaData()

(6)判別目前的 Connection 物件是否已被關閉:
isClosed()

(7)判別目前的 Connection 物件是否處於唯讀狀態:
isReadOnly

(8)還原資料庫異動作業:
rollback()


4.Statement 介面的方法:

(1)將 SQL 指令加入批次執行的清單中:
addBatch(String sql)

(2)清除目前的 SQL 批次清單:
clearBatch()

(3)立即關閉目前 Statement 物件佔用的資源:
close()

(4)呼叫指定的 SQL 敘述,並傳回一 ResultSet 物件:
executeQuery(String sql)

(5)呼叫指定的 SQL 敘述,並傳回異動的筆數:
executeUpdate(String sql)

(6)傳回產生目前 Statement 物件的 Connection 物件:
getConnection()




三、JSP 進階篇

1.動作元素標記:

(1)載入其他網頁的輸出結果:
<jsp:include>

(2)導向到其他網頁:
<jsp:forward>

(3)設定前兩個標記傳送的參數:
<jsp:param>

(4)載入 Java Applet 或 JavaBean:
<jsp:plugin>

(5)載入與使用 JavaBean:
<jsp:useBean>

(6)設定 JavaBean 的屬性值:
<jsp:setProperty>

(7)取得 JavaBean 的屬性值:
<jsp:getProperty>




四、過濾器

1.過濾器(Filter)的生命週期:

(1)載入 filter 類別

(2)建立 filter instance

(3)執行初始化

(4)呼叫 doFilter 方法

(5)摧毀 filter


2.FilterConfig 介面的方法:

(1)以指定的參數至 web.xml 裡取出過濾器中對應的初始值:
getInitParameter(String name)

(2)傳回 web.xml 裡所有過濾器的初始參數名稱集合:
getInitParameterNames()

(3)傳回目前使用的過濾器名稱:
getFilterName()

(4)取得目前所在的 ServletContext 物件,過濾器可藉由它存取整個 Web 應用程式中的屬性:
getServletContext()


3.FilterChain 介面的方法:

由 Filter 介面的 doFilter 方法觸發,並將控制權交給過濾鏈中下一個元件:
doFilter(ServletRequest request, ServletResponse response)


4.Filter 介面的方法:

(1)當 Web 容器啟始過濾器時,會傳入一個 FilterConfig 型態的參數:
init(FilterConfig config)

(2)過濾器會攔截每一個需求,並決定是否將控制權交給過濾鏈中的下一個元件,或者中斷此需求:
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

(3)移除過濾器實例:
destroy()

沒有留言:

張貼留言