範例-執行結果

Download Report

Transcript 範例-執行結果

第八章
JavaBen與結構化程式設計
1
第八章 JavaBen與結構化程式設計







8-1 組織JSP程式碼
8-2 自訂函數
8-3 建立類別
8-4 使用 include
8-5 設計JavaBean
8-6 JavaBean物件的生命週期
8-7 撰寫JSP網頁程式要點
2
8-1 組織JSP程式碼

(1)
HTML主要的功能在於建構網頁的畫面
內容,JSP的Java程式碼一般均被封裝
成為類別,由JSP呼叫使用,簡化JSP
內容,同時將畫面與程式邏輯切開。
3
8-1 組織JSP程式碼
JSP與HTML的關聯圖,展示如下:
(1)
有效的管理與簡化JSP程式碼,必須
對其進行分割與包裝。
4
8-1 組織JSP程式碼
(2)
JSP提供幾種方式用以組織與切割程式碼:



自訂函數、類別:將重覆使用的程式碼或是可切割
的程式邏輯,寫成獨立的函數或類別,由網頁直接
引用。
使用include指令:include可將外部檔案直接含入
目前網頁。
運用JavaBean:JavaBean是Java元件,是一種運
用於商業級程式的開發機制,由於為封裝元件,因
此程式本身亦能受到完整的保護。
5
8-2 自訂函數

在JSP中,經常使用自訂函數來簡化程
式結構,設計特定的程式功能。
6
8-2-1 共用變數與函數
函數是一種包含特定功能的JSP程式碼,<%!…%>是JSP
用以定義函數與變數的程式區塊辨識符號,定義網頁共
用的函數與變數,最簡單的函數定義方式如下:
<%!
void FunctionName()
{
程式片段 …
}
%>
7
範例-執行結果
8
8-2-2 運用參數
函數除了直接被呼叫,也可以傳入指定的參數,於函數中
作運算,必需在函數宣告的時候作指定,定義參數的語法
如下:
void FunctionName(dataType para1, dataType para2.....)
{
程式片段 …
}
9
範例-執行結果
10
8-2-3 函數回傳值
函數在執行後,能將結果傳回,須在函數最後加上return
指令,同時需指定所要回傳的資料型態。 下列為提供回傳
值的函數定義:
dataType FunctionName(dataType para1, dataType
para2.....)
{
程式片段 …
return(變數);
}
11
範例-執行結果
12
8-3 建立類別

建立類別可以有效組織程式碼的方法,
將多個相關功能的函數寫在一個類別
裏,由JSP程式碼引用類別所產生物件,
提供特定的程式功能。
13
8-3-1 類別要素
JSP自訂類別需在程式宣告區中來定義,定義的語法如下:
public class 類別名稱{
定義欄位屬性;
建構子;
定義方法
}
14
8-3-2 物件的建立方式
類別建立後,即可使用此類別產生物件,其方法如下:
類別名稱 物件名稱 = new 類別名稱();
物件建立之後,用下列的方式引用類別中的方法或屬性。
物件名稱.類別中定義的方法(參數);
物件名稱.類別中定義的屬性;
15
範例-執行結果
16
8-3-3 建構子與欄位屬性
當類別被建立之前,需提供初始化條件值時,可以建立
一個建構子,提供類別物件的初始化作業。
建構子是一種函數,與一般函數最大的差異在於命名必
需與類別名稱相同,語法如下:
class MathFunction{
public MathFunction(){
初始化程式碼
…
}
}
17
8-4 使用 include

使用自訂函數與類別,可簡化網頁的程
式碼複雜度,而外部網頁想要共用這些
寫好的內容,就必須再編寫一次,可以
試將程式碼寫在特定的網頁,用include
指令,載入整合至目前的網頁中。
18
8-4-1 include導引指令
include導引指令可以將指定的網頁,載入到目前的網頁,使用成為其中的一
部份,同時載入的檔案會因檔案本身性質的不同而產生不同的效果:
HTML文件:載入的HTML標籤會被嵌入網頁中,成為網頁的一部分。
文字檔:檔案中的文字內容會直接顯示於網頁上。
JSP程式:載入的JSP程式碼會成為網頁中一部分的程式片段。
使用include導引指令的範例,建立了三個檔案,功能分別說明如下:
檔案
功能
usingInclude.jsp
主程式網頁,用以載入includeFile.jsp以及includeFile.html兩個檔案。
includeFile.html
靜態文字內容。
includeFile.jsp
類別MathFunction程式碼。
19
範例-執行結果
20
8-4-2 使用 <jsp:include> 元素

jsp:include元素可以將一份網頁載入到
目前作用中的網頁,除此之外,允許
指定參數資訊。
21
8-5 設計JavaBean

JAVA提出JavaBean的程式碼元件化技術,
解決程式碼不易重覆使用的問題。
22
8-5-1 JavaBean的意義

JavaBean是可跨平台且可重覆使用的
Java標準元件,用來設計一些特定功能
的小程式,當應用程式需要提供相同的
特定功能,只需引用編譯好的JavaBean
元件,不需撰寫重覆的程式碼。
23
8-5-2 JavaBean的建立與初始化

要成為可重覆使用的標準JavaBean程式,
有幾個重要的特性與要點需遵守,列舉
如下:
1. JavaBean是一個公開的類別。
2. JavaBean類別中必須有一個建構子且
不具任何傳入值。
24
8-5-3 使用JavaBean

(1)
使用JavaBean的標準動作元素有三個,分
別是<jsp:useBean>、<jsp:setProperty>
以及<jsp:getProperty>,這三個標準動作
元素分別使用JavaBean、設定以及取得
JavaBean的屬性。
25
8-5-3 使用JavaBean
(2)
<jsp:useBean>須設定三個個屬性,這三個屬性的意義以
及說明列舉如下:
屬性
說明
id
指定在JSP網頁中所產生的JavaBean物件名稱,如此便可利用此名稱在JSP網頁中使
用JavaBean物件。
此為設定JavaBean物件的生命週期,有request、session、page及application四種指
定要使用的類別名稱。
指定要使用的類別名稱。
scope
class
26
範例-執行結果
27
8-5-4 設計JavaBean屬性
將JavaBean載入後,可以使用<jsp:setProperty>動作元素來設定JavaBean中
的屬性值,此元素的設定屬性如下:
屬性
說明
name
指定要設定屬性的JavaBean物件名稱,也就是<jsp:useBean>中的id屬性
property
要設定JavaBean物件的屬性,字首須為小寫字母
value
value欲指定的屬性值
param
表單中的參數名稱
要取得JavaBean物件的屬性須使用<jsp:getProperty>動作元素,設定屬性說明
如下:
屬性
說明
name
指定要設定屬性的JavaBean物件名稱,也就是<jsp:useBean>中的id屬性
property
欲取得的物件屬性
28
範例-執行結果
29
範例-執行結果
30
8-6 JavaBean物件的生命週期

使用<jsp:useBean>動作元素載入JavaBean
時,可指定JavaBean物件的生命週期,而
不同的生命週期也有不同的應用範圍及結果
產生。
31
8-6-1 session型態的生命週期


JavaBean物件的生命週期宣告為session
時,其生命週期的開始為物件建立時,
而結束於使用者未向系統再次提出要求
達某到某一設定時間之後。
session的特性,是每一個連線都是一個
獨立的,使用範圍只限於開啟瀏覽器視
窗的一位上線者。
32
範例-執行結果
33
8-6-2 application型態的生命週期


application的生命週期開始於物件建立時,
而結束於伺服器關閉。
application型態的物件是共用的,意即所
有的連線皆使用同一個JavaBean物件。
34
範例-執行結果
35
範例-執行結果
36
8-6-3 page型態的生命週期

JavaBean物件之生命週期宣告為page時,
則僅能在該網頁中使用,當使用者離開或
是按下重新整理按鈕,則該JavaBean物件
即告消失終止。
37
範例-執行結果
38
8-6-4 request型態的生命週期


JavaBean的生命週期是當使用者請求開
啟網頁時,而當開啟網頁後,JavaBean
便自動結束。
request型態的生命週期除了該網頁之外,
若使用到<jsp:include>或<jsp:forward>
動作元素,其生命週期延伸至被include
進來的頁面或forward出去之網頁。
39
範例-執行結果
40
8-7 撰寫JSP網頁程式要點
(1)
1.適度的切割程式
41
8-7 撰寫JSP網頁程式要點
(2)
2.分離介面與邏輯程式碼:
除了將特定功能分離出來,另一重點是 JSP
網頁只提供介面展現與資料搜集的功能,其
他運算邏輯程式碼則寫在寫類別裏。
42