




已閱讀5頁,還剩156頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第 4章 本章內容 理解 作用域對象 在 簡要說明 標簽語法 聲明 聲明變量與定義方法 小腳本 執(zhí)行業(yè)務邏輯的 表達式 用于在 指令 指定轉換時向容器發(fā)出的指令 動作 向容器提供請求時的指令 $注釋 用于文檔注釋 模板文本 同 下面是一個簡單的 輸出頁面被訪問的次數(shù)。 該頁面已被訪問 次。 表達式語言 在 用來在 明變量 、 定義方法 。 聲明形式: 可以包含任意數(shù)量的合法的 1. 注意: 明語句必須 以分號結束 。 1. 下面代碼在 也可以將上面的兩個 1. 小腳本( 嵌入在 小腳本形式: 下面一行就是 小腳本,因此 。 2. 優(yōu)點: 1. 可在 2. 可打印 2. ); ); ; 該頁面已被訪問 + 次。 ); 注意: 1. 小腳本的起始標簽“ 作為 下面是 在頁面每次 被訪問時,計算表達式 ,然后將其值 嵌入到 3. 與聲明不同, 表達式 不能 以分號結束 。 使用表達式 1. 輸出任何對象、任何基本數(shù)據(jù)類型的值。 2. 打印任何算術表達式、布爾表達式、方法調用返回的值。 注意: 在 3. 錯誤 向容器提供關于 在 令形式: 指令有三種類型: 1. 2. 3. 三種指令的語法格式如下: 在指令標簽中, 性 /值對 ,屬性之間 用空格分隔 。 通知容器關于 體特性 。 例如通知容器頁面輸出的內容類型和使用的字符集。 1. 實現(xiàn)把另一個文件( 內容 包含到 當前頁面 中。 下面是 2. 指定在 用標準標簽或自定義標簽的前綴與標簽庫的 下面是 關于指令的使用需注意下面幾個問題: 1. 標簽名、屬性名及屬性值都是 大小寫敏感 的。 2. 屬性值必須使用一對單引號、或雙引號括起來。 3. 在等號( =)與值之間 不能有空格 。 3. 頁面 發(fā)給 容器 的 命令 ,指示容器在頁面執(zhí)行期間完成某種任務。 動作的一般語法為: 動作是一種標簽,在動作標簽中: 值對 在 1. 2. 標準標簽庫( 的動作 3. 用戶自定義動作 例如容器把另一個 下面是常用的 當前頁面中包含另一個頁面的輸出。 請求轉發(fā)到指定的頁面。 找或創(chuàng)建一個 置 取 表達式語言 表達式語言( 在 潔的數(shù)據(jù)訪問語言。 $ 以 $開頭,括號包含合法的 出現(xiàn)在 可出現(xiàn)在 $該 優(yōu)點 1. 對用戶理解代碼有幫助。 2. 顯示 3. 在調試 以將 可在小腳本、或聲明中使用 可在頁面 理解頁面轉換過程 理解轉換單元 從結構上看與 但實際上 作為 當 并將其轉換成相應的 該文件聲明了一個 稱為 頁面實現(xiàn)類 。 與其他 并將其輸出結果發(fā)送到客戶端 。 四個階段: 將 后三個階段 為初始化 、 提供服務和銷毀階段 。 階段名稱 說明 頁面轉換 對頁面解析 , 并創(chuàng)建一個包含對應 頁面編譯 對 加載類 將編譯后的類加載到容器中 創(chuàng)建實例 創(chuàng)建一個 調用 調用其他方法之前 , 調用該方法初始化 調用 _ 對每個請求調用一次該方法 調用 當 下面以 明當客戶首次訪問時, 個階段。 1. 轉換階段 并將其轉換成 在此階段 , 容器將檢查 如果發(fā)現(xiàn)錯誤將不能轉換 。 例如在 , 在轉換階段被捕獲該錯誤 。 錯誤 除檢查語法外 , 容器還將執(zhí)行其他有效性檢查 、 驗證 。 一旦驗證完成 , 實際是一個 該文件存放在 1. 轉換階段 所有 。 _ ; ; 1. 轉換階段 每個容器都提供一個特定的類作為頁面實現(xiàn)類的基類 。 作為基類 , 提供 在轉換階段 , 容器把 _添加到 使該類成為三個接口的一個具體子類 。 1. 轉換階段 將 在編譯階段 , 編譯器將檢查在聲明 、 小腳本以及表達式中所寫的全部 2. 編譯階段 在 必須要轉換成 對每個請求 , 容器要檢查 以確定頁面是否更新 、 或是否已經轉換成類文件 。 如果修改了 轉換成 2. 編譯階段 后加載到內存中。 3. 加載類 建一個 4. 實例化 初始化 該方法在 任何其他方法調用之前 調用的 , 并在頁面生命期內 只調用一次 。 通常在該方法中完成初始化或只需一次的設置工作 , 例如初始化 明的實例變量 。 5. 調用 對于該頁面的 每一次請求 , 容器都 調用一次_, 并傳遞請求和響應對象 。 在轉換階段 , 以及 都成為 _的一部分 。 當容器決定停止該實例提供服務時 , 將調用, 是 主要用于清理 獲得的資源 。 一般 不需要實現(xiàn) 和 , 已由基類實現(xiàn) , 但可根據(jù)需要 , 使用 但是 , 不能覆蓋 _, 由 理解頁面轉換過程 容器根據(jù)下面規(guī)則轉換: 1. 所有 轉換成 頁面實現(xiàn)類的成員 , 它們被原樣拷貝 。 2. 所有 換成頁面實現(xiàn)類的 _一部分 ,它們也被原樣拷貝 。 小腳本的聲明變量轉換成 _的局部變量; 小腳本的語句轉換成 _中的語句 。 3. 所有的 轉換成為 _的一部分 。 語句輸出 。 4. 有些 轉換階段產生 5. 所有的 通過調用類來替換 。 6. 所有 表達式語言 語句輸出 。 7. 所有 模板文本 都成為 _的一部分 。 模板內容使用 語句輸出 。 8. 所有的 被忽略 。 理解頁面轉換過程 理解轉換單元 在 把另一個文件 ( 如 的內容包含到當前頁面中 。 針對上述情況 , 容器為當前 也把被包含的文件內容插入到產生的頁面實現(xiàn)類中 。 這些被轉換成單個頁面實現(xiàn)類的頁面集合稱為 轉換單元 。 有些 而不只是它們所在的頁面 。 關于轉換單元 , 請記住下面要點: 通知容器關于頁面的總體性質 , 在 一個轉換單元 中 一個變量不能多次聲明 。 如果一個變量已經在主頁面中聲明 , 就不能在被包含的頁面中聲明 。 在一個轉換單元中不能使用 動作對一個 理解轉換單元 理解 指明容器關于 適用于整個轉換單元, 而不僅僅是它所聲明的頁面 。 屬性名 說明 默認值 入在 其間用逗號分隔 ; ; ; ; 定輸出的內容類型和字符集 定 布爾值指定 相對 一個布爾值指定當前 定容器支持的腳本語言 何合法的實現(xiàn)了 口的 與實現(xiàn)有關 定輸出緩沖區(qū)的大小 與實現(xiàn)有關 定是否當緩沖區(qū)滿時自動刷新 于 與實現(xiàn)有關 定頁面是否同時為多個請求服務 定是否在此轉換單元中對 若 默認值為 . 類似于 將 在轉換階段 , 容器對屬性聲明的每個包都轉換成頁面實現(xiàn)類的一個 一個 逗號分開 即可。 為了增強代碼可讀性,也可使用多個 2. 指定 字符集默認值 號分隔 。 如果頁面需要顯示中文,字符集應該指定為 3. 指定 默認值為 (1)設置 (2)沒有設置這個屬性 , 。 (3)如果頁面中含有中文 , 應該將該屬性值指定為 4. 指示 默認值為 支持會話時 , 容器將聲明一個 隱含變量 如果不希望頁面參加會話 , 可明確地加入一行: 在頁面執(zhí)行過程中 , 嵌入在頁面中的 出異常 。 誤處理代碼與主頁面代碼分離 , 從而提高異常處理機制的可重用性 。 異常代理給另一個包含錯誤處理代碼的 它也可以是靜態(tài)的 例如: 但是 , 在 5. 指定當前頁面是否作為其他 默認值為 在這種情況下 , 容器在頁面實現(xiàn)類中聲明 隱含變量 注意: 該頁面僅從異常對象中檢索信息 , 并產生適當?shù)腻e誤消息 。 因為該頁面沒有實現(xiàn)任何業(yè)務邏輯 , 所以可以被不同的 如果不帶參數(shù)請求頁面 , 瀏覽器可能顯示 “無法顯示網頁 ” 的頁面 。 解決方案: 1. 打開 “ 對話框 , 2. 在 “ 高級 ” 選項卡中 , 將 “ 瀏覽 ” 組中的 “ 顯示友好 的復選框取消 , 3. 重新訪問頁面 , 則顯示 在 在 可為整個 根據(jù)異常類型或 在 素 , 子元素包含 3個: :指定處理錯誤的異常類型 : : 錯誤處理頁面 前兩個元素不能同時出現(xiàn) 下面代碼聲明一個處理算術異常的錯誤頁面。 在 還可以像下面這樣聲明一個更通用的處理頁面。 在 對于沒有明確指定錯誤處理頁面的異常 , 都將由該頁面處理 。 以下代碼為 04配置一個錯誤處理頁面。 404 / 注意: (1)元素的值必須 以“ /”開頭 ,它是相對于 (2)如果在 在 6. 指定頁面的聲明 、 小腳本及表達式中的使用語言 , 默認值是 7. 指定頁面產生的 僅在希望定制所產生的 默認的基類是廠商提供的 , 很少被使用 。 8. 指定輸出緩沖區(qū)的大小。 緩沖區(qū)的值是以 9. 指定是否在緩沖區(qū)填滿時 , 自動將緩沖區(qū)中的數(shù)據(jù)發(fā)送給客戶 , 該屬性的默認值為 如果將其設置為 而緩沖區(qū)又滿了 , 那么當再向緩沖區(qū)添加數(shù)據(jù)時會產生異常 。 10. 指定一個字符串值 , 由 返回。 在頁面中使用 腳本檢索該值 ,該屬性的默認值依賴于實現(xiàn) 。 由于聲明 、 小腳本和表達式允許在頁面中編寫腳本語言代碼 , 所以這些元素統(tǒng)稱為 腳本元素 。 腳本元素中代碼的編譯和運行受到 1. 聲明的順序 在 明中定義的變量和方法 都變成產生的 在頁面中出現(xiàn)的 順序無關緊要 。 2. 小腳本的順序 小腳本被轉換成頁面實現(xiàn)類的 _方法的一部分 , 小腳本中聲明的變量 成為該方法的 局部變量 , 故出現(xiàn)的 順序很重要 。 變量的聲明及順序 3. 變量的初始化 在 實例變量 被自動初始化為默認值 , 而 局部變量 使用之前必須明確賦值 。 明的變量 , 被初始化為默認值 。 明的變量 , 使用之前必須明確初始化 。 of i of j 錯誤 正確 變量的聲明及順序 注意: (1)實例變量 是在容器實例化 并只被初始化一次,在 持它們的值 。 (2)局部變量 對每個請求都創(chuàng)建和銷毀一次,在小腳本聲明的變量在多個請求中 不保持其值 ,而是在 時被重新初始化。 變量的聲明及順序 使用條件和循環(huán)語句 小腳本用來在 常這種邏輯包含條件和循環(huán)語句。 例如,下面的腳本代碼使用了條件語句檢查用戶的登錄狀態(tài),并基于該狀態(tài)顯示適當?shù)南ⅰ?歡迎你 ,+訪問該頁面! ); 你還沒有登錄! ); 登錄 ); % 如果在條件語句中包含大量 以使條件語句跨越 語句。 使用條件和循環(huán)語句 歡迎你, 訪問該頁面! 這里可包含其他 你還沒有登錄! 登錄 這里可包含其他 注意: 大括號的用途是標記 忽略大括號可能在編譯時產生錯誤 , 在運行時引起未知行為 。 歡迎你, 訪問該頁面! 將被轉換成: 歡迎你, ); 訪問該頁面! ); 使用條件和循環(huán)語句 與條件語句一樣 , 循環(huán)語句 也可跨越多段小腳本 , 使常規(guī)的 使用條件和循環(huán)語句 請求時屬性表達式的使用 也可用來向 ” / 并不發(fā)送到輸出流 ,而 是 在 請 求 時 計 算 出 該 值 , 然 后 將 它 賦 給動作的 以上述方式向 動作 傳遞一個屬性值 , 而使用的表達式稱為 請求時屬性表達式 。 請求時屬性表達式的使用 注意: 請求時屬性表達式 不能用在指令 的屬性中 。 指令具有轉換時的語義 , 即容器僅在頁面轉換期間使用指令 。 下例中的指令是非法的: % 在 中聲明并初始化一些變量 , 可以在 ); % 為 隱含對象 ( 對象是由容器創(chuàng)建,可像變量一樣使用,也稱為 隱含變量 ( 表 4隱含變量 類或接口 說明 引用 引用用戶會話 引用頁面的當前請求對象 用來向客戶發(fā)送一個響應 引用頁面輸出流 引用頁面的 引用頁面上下文 引用 用來處理錯誤 如果一個頁面是錯誤處理頁面 , 即頁面中包含下面的 則頁面實現(xiàn)類中將自動聲明 (; 注意: 隱含變量只能在 腳本 和 表達式 中使用。 當 。 在 用來分析請求和發(fā)送響應。 你的 你的主機名為: 打印輸出所有的基本數(shù)據(jù)類型 、 字符串以及用戶定義的對象 。 可在小腳本中直接使用它 , 也可在表達式間接使用它產生 對上面兩行代碼 , 語句輸出 。 下面的腳本使用 打印輸出不同類型的數(shù)據(jù) 。 0); 00 ); ); % 是 , 下面兩段小腳本是等價的 。 它在 使用會話對象 , 必須要求 即要求將 默認情況下 , 如果明確將容器將不會聲明該變量 ,對該變量的使用將產生錯誤 。 會話 錯誤 是一個頁面上下文對象 。 容器提供了一個具體子類 ( 如 , 有三個作用 。 ( 1) 存儲隱含對象的引用 。 包括用戶定義的和隱含的對象 , 并且它提供了一個訪問方法來檢索 。 ( 2) 提供在不同作用域內返回或設置屬性的方法 。 ( 3) 提供 和 實現(xiàn)將請求轉發(fā)到另一個資源和將一個資源的輸出包含到當前頁面中 。 將另一個資源的輸出包含在當前頁面的輸出中 , 與接口的 功能相同 。 將請求轉發(fā)到參數(shù)指定的資源 , 與 功能相同 。 從 要寫下面兩行代碼。 ; 在 過使用 ; 聲明如下: 指生成的 變量 很少被使用 。 可通過 在 類似地 , 也可為 參數(shù)在 實現(xiàn)步驟: 1. 在 明一個. 使用 元素使其與 該命名的3. 在 O., 被用作為其他頁面的錯誤處理器 。 為使頁面能使用 必須在 在頁面中 , 將 容器明確定義了 該變量指向使用該頁面作為錯誤處理器的頁面拋出的未捕獲的 作用域對象 個作用域對象 , 類型是 作用域名 對應的對象 存在性和可訪問性 應用作用域 在整個 會話作用域 在一個用戶會話范圍內有效 請求作用域 在用戶的請求和轉發(fā)的請求內有效 頁面作用域 只在當前的頁面(轉換單元)內有效 應用作用域 在應用作用域的對象 , 可被 并在應用程序生命期內都可以訪問 。 對象通過 屬性 /值 ” 對維護的 。 在 該實例可通過隱含對象 要在應用程序級共享對象 , 可使用 和 。 應用作用域 例如,在 ; ; 在 會話作用域 在會話作用域的對象 , 可以被 屬于一個用戶會話 的所有請求共享 , 并只能在會話有效時才可被訪問 。 對象是通過 屬性 /值 ” 對維護的 。 在 該實例可通過隱含對象 在會話級共享對象 , 可以使用 和 。 會話作用域 在購物車應用中 , 用戶購物車對象 存放在會話作用域中 , 它在整個的用戶會話中共享 。 (; = ; / 將購物車存儲到會話對象中 請求作用域 在請求作用域的對象 , 可以被 處理同一個請求 的所有組件共享 , 并僅在該請求被服務期間可被訪問 。 對象由 屬性 /值 ” 對維護 。 在 該實例是通過隱含對象 在 將一個對象存儲到請求作用域中 。 將請求轉發(fā)到 在 本或 請求作用域 下面代碼在 存儲在請求作用域中,然后將請求轉發(fā)到 ; ); ) ); 下面是 請求作用域 頁面作用域 在頁面作用域的對象 , 只能在所定義的轉換單元中被訪問 。 對象是由 值對維護的 。 在 該實例可通過隱含對象 為 在 頁 面 作 用 域 中 共 享 對 象 , 可 以 使 下面代碼 設置 一個頁面作用域的屬性: 下面代碼 獲得 一個頁面作用域的屬性: 頁面作用域 使用它們可以方便地處理不同作用域的屬性 。 該類定義的常量有 4個: 示 示 示 示 頁面作用域 該類定義的方法有 4個: 在指定的作用域中設置屬性。 返回在指定作用域中名為 沒有找到則返回 查找指定名稱的屬性值 。 查找順序為頁面作用域 、 請求作用域 、 會話作用域 ( 若有效 ) 、 應用作用域 。 返回給定屬性的作用域。 頁面作用域 使用 個會話作用域的屬性: 頁面作用域 使用 個 會話作用域 的屬性: 上面一行等價于: 頁面作用域 使用 個 應用作用域 的屬性: 上述代碼等價于: 使用 即使不知道作用域也可以查找一個屬性 頁面作用域 代碼可重用性是軟件開發(fā)的一個重要原則 。 使用可重用的組件可提高應用程序的生產率和可維護性 。 其中包括在 通過兩種方式實現(xiàn): 靜態(tài)包含 或 動態(tài)包含 。 靜態(tài)包含: 靜態(tài)包含 在 將另一個文件的內容包含到當前 使用 明包含的文件。 文件使用相對路徑指定 以斜杠 ( /) 開頭 , 相對于 不以斜杠開頭 , 它是相對于當前 被包含 每個頁面都可以訪問在另一個頁面中定義的變量。 它們也共享所有的隱含變量。 1. 從被包含頁面中訪問變量 2. 靜態(tài)包含的限制 當使用 要遵循下列幾個規(guī)則。 ( 1)在轉換階段不進行任何處理, 求時表達式。 % 錯誤 2. 靜態(tài)包含的限制 ( 2) 不能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電廠鍋爐噴涂合同協(xié)議
- 電商土方租賃合同協(xié)議
- 電腦顯示屏合同協(xié)議
- 生產環(huán)氧地坪合同協(xié)議
- 甲方原合同補充協(xié)議范本
- 申請購買勞動合同協(xié)議
- 玻璃隔斷墻裝修合同協(xié)議
- 電信寬帶服務合同協(xié)議
- 百果園采購合同協(xié)議
- 瓦工貼磚勞務合同協(xié)議
- (完整版)供應商審核表
- 說專業(yè)(市場營銷專業(yè))課件
- 火電廠工藝流程圖
- 員工獎懲簽認單
- 水腫病患者的護理查房ppt
- 第18章生殖毒性研究
- 海天2013英語二作文10篇范文(圖表類作文)
- CSD恒速傳動裝置
- 美的空調制造工藝手冊(共220頁)
- 天醫(yī)門符法修煉與祝由移病法
- 皮膚營養(yǎng)美容
評論
0/150
提交評論