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 驅動程式
(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)
(1)以指定的參數建立資料庫連線:
getConnection(String url, String user, String password)
(2)取出目前載入 JDBC 驅動程式的集合:
getDrivers()
getDrivers()
(3)取得登入資料庫的最長允許時間(秒):
getLoginTimeout()
getLoginTimeout()
(4)以指定的秒數設定登入資料庫的最長允許時間:
setLoginTimeout(int sec)
setLoginTimeout(int sec)
3.Connection 介面的方法:
(1)立即關閉目前的資料庫連線:
close()
(2)讓同一交易中所有的資料庫異動作業生效:
commit()
commit()
(3)建立一 Statement 物件,以便執行不帶參數的 SQL 敘述:
createStatement()
createStatement()
(4)取得目前 Connection 物件的自動 commit 狀態:
getAutoCommit()
getAutoCommit()
(5)取得目前連線資料庫的基本資料物件:
getMetaData()
getMetaData()
(6)判別目前的 Connection 物件是否已被關閉:
isClosed()
isClosed()
(7)判別目前的 Connection 物件是否處於唯讀狀態:
isReadOnly
isReadOnly
(8)還原資料庫異動作業:
rollback()
rollback()
4.Statement 介面的方法:
(1)將 SQL 指令加入批次執行的清單中:
addBatch(String sql)
(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()
clearBatch()
(3)立即關閉目前 Statement 物件佔用的資源:
close()
(4)呼叫指定的 SQL 敘述,並傳回一 ResultSet 物件:
executeQuery(String sql)
(5)呼叫指定的 SQL 敘述,並傳回異動的筆數:
executeUpdate(String sql)
(6)傳回產生目前 Statement 物件的 Connection 物件:
getConnection()
三、JSP 進階篇
1.動作元素標記:
(1)載入其他網頁的輸出結果:
<jsp:include>
(1)載入其他網頁的輸出結果:
<jsp:include>
(2)導向到其他網頁:
<jsp:forward>
<jsp:forward>
(3)設定前兩個標記傳送的參數:
<jsp:param>
<jsp:param>
(4)載入 Java Applet 或 JavaBean:
<jsp:plugin>
<jsp:plugin>
(5)載入與使用 JavaBean:
<jsp:useBean>
<jsp:useBean>
(6)設定 JavaBean 的屬性值:
<jsp:setProperty>
<jsp:setProperty>
(7)取得 JavaBean 的屬性值:
<jsp:getProperty>
<jsp:getProperty>
四、過濾器
1.過濾器(Filter)的生命週期:
(1)載入 filter 類別
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()
沒有留言:
張貼留言