
互聯(lián)網(wǎng)軟件應用于開發(fā)第一章
調度:調度是在開發(fā)過程中一種對人員、資源、應用風格以及開發(fā)技術手段進行平衡的活動。
信息出版模型:信息出版模型指一些Internet上的站點出版信息。
項目規(guī)劃:整個Web開發(fā)過程中最重要的階段。這個階段中需要了解項目要做什么?如何做?什么時間做?
界標:在階段轉換時出現(xiàn)的判斷點也稱其為“界標”,因為她們標志一個階段的完成。
風格漂移:就是一種緩慢的不易被發(fā)現(xiàn)的項目風格,特點逐漸變化的過程。
Web開發(fā)過程有五個基本階段:1規(guī)劃2設計3建設和測試4投入使用5完成及后續(xù)管理
在階段轉換時出現(xiàn)的判斷點也稱其為界標,因為它們標志一個階段的完成.
α測試 —由開發(fā)小組成員把開發(fā)站點上的內容映射到測試站點上,小組成員進行的測試和用戶進行的驗收性測試
β測試 —開發(fā)小組成員和用戶在測試站點進行的正式測試計劃
第一階段:規(guī)劃
目的:生成項目計劃 內容包括:確定日程表;確定項目的高級時間期限和每個階段的最后期限;明確項目目標,Web應用的目標,開發(fā)方法,項目任務分配,項目設想和風險
第二階段:設計
在這一階段,對于網(wǎng)站的外觀,網(wǎng)站的結構,站點定位,Web應用要完成的任務以及必要的數(shù)據(jù)資料,必須經(jīng)過用戶的認可。同時確定站點設計準則和技術特征。另外,如果Web應用進行劃分,這樣項目各部分可以同時進行,縮短了項目周期。
完成設計階段的任務清單:
1功能分析2數(shù)據(jù)建模3信息結構4技術分析--- 5構造開發(fā)和測試環(huán)境6確定設計目標---確定選項7確定風格規(guī)范-8確定技術標準---明確文件和目錄命名規(guī)則9設計原則10可用性測試11生成項目設計規(guī)范12測試規(guī)劃
第三階段:建設和測試
目的:開發(fā)符合項目設計規(guī)劃的高質量的Web應用。
主要任務:1確定開發(fā)規(guī)則2創(chuàng)建骨干頁面3測試準備4生成內容5技術設計6編程7集成8α測試9β測試10糾正錯誤
第四階段:投入使用
目標:把全面測試過的β測試Web應用發(fā)布到運營服務器上
如果測試工作順利,則項目小組的任務就結束了。此外,還要對整個開發(fā)環(huán)境,源文件,開發(fā)工具和文檔進行備份。
第五階段:運行及后續(xù)管理
目標:保障站點內容及時更新并保障其正常平穩(wěn)運行
規(guī)劃是整個Web開發(fā)過程中最重要的階段
完成規(guī)劃階段涉及到的典型問題:
(1)確定項目目標(2)確定Web應用的目的(3)明確目標用戶(4)項目的范圍
(可以按照下列步驟估價項目:1確定Web應用的功能和特點2選擇站點模型3選擇瀏覽器4確定具體內容5確定用戶重點6對開發(fā)方法取得一致)
(5)明確用戶重點
(6)同意方法7創(chuàng)建項目計劃
一般最常用的站點模型有以下幾種:
1信息出版模型2公司基礎結構模型3售后支持模型4電子商務模型5產(chǎn)品和服務模型
項目計劃有若干部分組成,但至少要包括以下四部分:1目標2風險和假設3時間表4預算
項目小組角色包括(內容設計者,內容Web管理員,數(shù)據(jù)庫設計者,圖形設計者,項目管理人員,軟件質量管理分析人員和測試人員,系統(tǒng)管理員,技術Web管理員和Web程序員)
項目小組中客戶的角色:1決策人2商務發(fā)起人3問題專家4支持人員
在項目的整個生命周期中,項目管理員的職責對項目的成功至關重要。
項目管理員必須不斷使用的技能:1規(guī)劃2估計和度量3追蹤4交流
簡述在確定項目規(guī)模時估價項目的步驟。
答:可以安照下列步驟估價項目:
(1)確定Web應用的功能和特點。(2)選擇站點模型。(3)選擇瀏覽器。(4)確定具體內容
(5)確定用戶重點 (6)對開發(fā)方法一致
簡述客戶在項目小組中出現(xiàn)的一些角色。
答:客戶在項目小組中出現(xiàn)的一些角色包括:
(1)決策人:(2)商務發(fā)起人(3)問題專家
(4)支持人員
簡述項目計劃中包括的幾部分。
答:項目計劃由若干部分組成,但至少要包括以下四個部分:
1. 目標:總結在:“確定項目目標”和“確定Web應用目標”中明確下來的目標,另外,還要明確商業(yè)術語中的關鍵詞語。
2. 風險和假設:項目管理人員列出他在編寫項目計劃中所做的全部假設;管理人員要估計出每一種風險出現(xiàn)的可能性,并提出消除這種風險的方法。
3. 時間表:明確每一階段的詳細任務及完成期限;根據(jù)項目規(guī)模明確每項任務,每個步驟所需
4. 預算——根據(jù)制定時間表時所做的估計及分配給項目的資源量進行預算
第二章
Internet:是一個用路由器實現(xiàn)多個廣域網(wǎng)和局域網(wǎng)網(wǎng)聯(lián)的大型網(wǎng)際網(wǎng),它對推動科學、文化、經(jīng)濟和社會的發(fā)展有著不可估量的作用。
nternet已經(jīng)成為覆蓋全球的信息基礎設施之一。
Web:全稱為:World Wide Web,縮寫為:WWW,中文譯為“萬維網(wǎng)”。Web是一種體系結構,通過它可以訪問遍布于Internet主機上的鏈接文檔。(它可以用簡單的方式連接全球范圍的超媒體信息。)
Internet是指全球性的信息系統(tǒng),該系統(tǒng)具有三個主要特征:
1Internet中的計算機通過全球性的唯一地址邏輯地鏈接在一起,這個地址是建立在網(wǎng)間協(xié)議或今后的其他協(xié)議基礎之上的。
2Internet中的計算機之間的通信使用的是TCP/IP協(xié)議
3Internet可以為公共用戶或個人用戶提高水平的信息服務。這種服務是建立在上述通信及相關的基礎設施之上的。
該定義揭示了Internet的三個特點:全球性 開放性與平等性
“Web全稱World Wide Web是一種體系結構”,這個說法包含哪幾層含義?
(1)web是internet提供的一種服務
(2)web 是存儲在全世界internet計算機中數(shù)量巨大的文檔的集合
(3)web上海量的信息是由彼此關聯(lián)的文檔組成的
(4)web的內容保存在web站點中,用戶可以通過瀏覽器訪問web站點
簡述Web服務器向瀏覽器提供服務的過程。
(1)用戶打開計算機,啟動瀏覽器程序,并在瀏覽器中指定一個URL,瀏覽器便向該URL所指向的Web服務器發(fā)出請求。
(2)Web服務器接到瀏覽器的請求后,把URL轉換成頁面所在服務器的文件路徑名。
(3)如果URL指向的是普通的HTML文檔,Web服務器直接將它送給瀏覽器。
(4)如果HTML文檔中嵌有CGI程序,Web服務器就運行CGI程序,并將結果傳送至瀏覽器。Web服務器運行CGI程序時還可能需要調用數(shù)據(jù)庫服務器和其它服務器
客戶機/服務器的通信過程:客戶機向服務器發(fā)送請求,要求執(zhí)行某項任務,而服務器則執(zhí)行某項任務。
web體系結構和工作過程:
從本質上講,web是基于客戶機、服務器的一種體系結構。PC等微型計算機的性能/價格比工作站,小型機,大型機高得多,因此人們將數(shù)據(jù)等大量信息存儲在共享的服務器上,用價格低廉的個人計算機與之相連,以便享用服務器的高性能。在這種客戶機/服務器模型中,典型的通信過程為:客戶機向服務器發(fā)送請求,要求執(zhí)行某項任務,而服務器則執(zhí)行此項任務,并向客戶機返回響應。
在客戶機/服務器體系結構中,通常很容易將客戶機和服務器理解為兩端的計算機。但事實上,客戶機和服務器概念上更多的是指軟件,是指兩臺機器上相應的應用程序。
對于web系統(tǒng),客戶機上所運行的瀏覽器程序基本上是標準化的,所以人們建立客戶機/服務器系統(tǒng)的主要任務就落到了服務器端。Web的體系結構因而可以稱作瀏覽器/服務器結構。
現(xiàn)階段Web的基本技術包括哪些方面?并簡要解釋。
答:(1)服務器技術。(2)HTML技術。(3)CGI技術。(4)Java技術。(5)JavaScript技術。
(6)ActiveX技術和VBScript技術。(7)VRML技術。
IP地址:接入Internet的計算機與接入電話網(wǎng)的電話相似,每臺計算機或路由器都有一個由授權機構分配的號碼,稱為IP地址,
簡述A類IP地址的特征。
A類IP地址網(wǎng)絡號空間長度為7位,主機號空間長度為24位。A類IP地址的表示范圍為1.0.0.0~~~~~126.255.255.255。允許有27(128)個不同的A類網(wǎng)絡(網(wǎng)絡號的0和127保留用于特殊目的),而且A類網(wǎng)絡的主機號數(shù)多達224個。A類IP地址結構適用于有大量主機的大型網(wǎng)絡。
簡述B類IP地址的特征。
答:B類IP地址網(wǎng)絡號空間長度為14位,主機號空間長度為16位。B類IP地址的表示范圍為128.0.0.0~~~~~191.255.255.255。允許有214個不同的B類網(wǎng)絡,每個B類網(wǎng)絡的主機號多達216個。B類IP地址適用于有一定數(shù)量主機的中型網(wǎng)絡。
簡述C類IP地址的特征。
答:C類IP地址網(wǎng)絡號空間長度為21位,主機號空間長度為8位。C類IP地址的表示范圍為192.0.0.0~~~223.255.255.255。允許221個不同的C類網(wǎng)絡。同時,由于主機號空間長度為8位,因此每個C類網(wǎng)絡的主機號多達28個。C類IP地址適用于有少量主機的小型網(wǎng)絡。
簡述Internet域名系統(tǒng)的實現(xiàn)原理。
答:這種將主機域名映射成IP地址的過程稱為域名解析。域名解析包括兩種方式:正向域名解析(從域名到IP地址)與反向解析(IP地址到域名)。
如果要實現(xiàn)Web的服務器上的SSL請求,可按照下列步驟進行:
1生成密鑰對文件和請求文件
2從身份驗證權限中請求一個證書
3在服務器上安裝證書
4激活WWW服務器文件夾上的SSL安全性
第三章HTML語言介紹
HMTL:是一種超文本標識語言,它是構成Web頁面的主要工具。
鏈接:鏈接是惟一的從一個Web頁到另一個相關的Web頁的理性的途徑,它由兩部分組成:錨鏈和URL引用。
URL的相對引用:對同一個計算機上文件的URL引用又被稱為相對引用。URL的絕對引用:指明web頁的精確的計算機,目錄和文件的URL引用
HEAD元素內的元素的功能:
1給文檔一個標題2安排多個文檔之間的關系3告訴瀏覽器創(chuàng)建一個搜索格式4提供一個向特定瀏覽器和其他觀察器傳遞特殊消息的方法
BODY屬性及功能:
ALINK 定義活動鏈接顏色
BACKGROUND 指向用做文檔背景色的圖像的URL
BGCOLOR 定義文檔背景顏色
BGPROPERTIES 如果它被設為FIXED,背景不能滾動
LEFTMARGIN 以像素為單位設置文檔左側邊界寬度
LINK 定義未訪問鏈接的顏色
TEXT 定義文檔顏色
TOPMARGIN 以像素為單位設置文檔頂邊界寬度
VLINK 定義已訪問過的鏈接的顏色
<address></address>表示斜體顯示
錨鏈有兩種類型:文本和圖形
表格:<table></table>表示建立表格;<tr></tr>表示建立一行;<th></th>表頭;<td></td>單元格具體內容。<table>可以有align對齊屬性(left/center/right)還有border表格框屬性,表格的對齊主要有align和valign[(top/bottom/middle)(baseline一行中所有元素將它們對齊到一個共同基線上)]
表單:<form></form>還要定義它使用的腳本以及如何發(fā)送數(shù)據(jù)method=post(URL), get(信息附加到URL尾部)。Action:接收窗體的URL。
1<textarea></textarea>提供一個多行信息輸入的字段文本框<name><rows >行<cols>寬
2<select></select>彈出一個滾動列表屬性<name><size>定義出現(xiàn)的選項<multiple>允
許多項選擇<option>賦值<selected>缺省選項<value>返回腳本的值。
3、<input>標記屬性如下: <name>定義數(shù)據(jù)名稱<size字段的大小> <maxlength>輸入最
大字符<value>顯示缺少文本<checked>它選中一個復選框或單選按鈕<type>設置要顯
示的輸入的字段類型[(text)(password)密碼(check box)顯示可選框(radio)復選
框(reset)還原預置值(submit)顯示具有預置功能的按鈕:發(fā)送到服務器。
第四章
ASP.NET的優(yōu)越性:(1)簡化開發(fā)操作(2)語言獨立性(3)分離程序代碼和網(wǎng)頁內容(4)提高執(zhí)行效率(5)簡化部署與組態(tài)的操作(6)支持多種客戶類型(7)支持下一 代的Web Service (8)增進適用性(9)增進延展性(10)更多的支持工具(11)更佳的的安全工具(12)Session 可以跨進程,跨機器。
ASP與ASP.NET的比較
比較項目 ASP ASP.NET
擴展名 .asp .aspx
使用語言 VBScript、JScript等腳本語言 語言中立,VB.NET、C#等
任何支持CLS規(guī)格的語言均可
程序和
網(wǎng)頁設計 程序代碼與網(wǎng)頁混雜,難以重復使用 程序代碼可與顯示界面分離,獨立成一個類Class
支持
Web Service 不支持 支持
Application ASP.DLL xspisapi.dll
組態(tài)設置方法 使用IIS的MMC嵌入式管理單元 使用XML類型的組態(tài)文件 Web.config
數(shù)據(jù)存取方法 使用ADO(Access Data Object) 使用ADO.NET
ASP.NET中的文件類型
ASP的文件類型只有一個:.asp,
而在ASP.NET中有多種類型的文件
Global.asax: ASP.NET系統(tǒng)環(huán)境設置文件,相當于ASP中的 Global.asp
.aspx:內含ASP程序代碼的文件,相當于原來的.asp,瀏覽器可執(zhí)行此類文件
.asmx:制作Web Service的原始文件
.sdl: 制作Web Service的XML格式的文件
.vb或.cs:在非ASP.NET環(huán)境下執(zhí)行Web Service的文件
Aspc:可重復使用多個 .aspx的文件,此文件內可含有控件
Ascx:內含User Control的文件,可內含在多個 .aspx文件中
4.4.1 ASP.NET的編程語言
ASP.NET支持的開發(fā)語言種類很多
VB.NET C#.NET JSCRIPT.NET
VC++.NET以及其他 .NET Framework所支持的語言使用。最普遍的編程語言VB.NET
C#.NET
VB.NET最大的新特征就是利用了CLS(Common Language Specification)和CLR(Common Language Runtime)
VB.NET遵從,任何遵從CLS的語言都可以使用由VB.NET編寫的類、對象和組件
VB.NET開發(fā)人員也可以自由使用其他遵從CLS的語言編寫的類、對象和組件,不用擔心語言之間的差異
二、C#.NET程序設計語言
4.1.5 ASP.NET豐富的Web控件
廣告輪換控件 asp:adrotator
日歷控件 asp:calendar
用戶驗證控件
控件名稱 說明
RequiredFieldValidator 驗證用戶輸入不為空
CompareValidator 使用比較運算符將用戶的輸入與另一控件的常數(shù)值或屬性值進行比較
RangeValidator 檢查用戶的輸入是否在指定的上下邊界之間??梢詸z查數(shù)字、字母或日期對以內的范圍,可以將邊界表示為常數(shù)
RegularExpressionValidator 檢查輸入是否與正則表達式定義的模式匹配,該驗證類型允許檢查可預知的字符序列,如身份證、電子郵件地址、電話號碼、郵政編碼等中的字符序列
CustomValidator 使用自己編寫的驗證邏輯檢查用戶的輸入,該驗證類型允許檢查運行時導出的值
ValidationSummary 以摘要的形式顯示頁面上所有驗證程序的驗證錯誤
4.2 Web 頁面
4.2.2 Web 頁面處理過程
當aspx網(wǎng)頁被客戶端請求時,web服務器代碼被執(zhí)行,執(zhí)行結果被送回到瀏覽器端 (與普通asp相同)
Asp.net還做了許多其他事情
自動處理瀏覽器的表單提交
將各個表單域的輸入值轉換成對象的屬性
將客戶的點擊映射到不同的服務器端事件
Web頁面處理過程將完成二項主要的工作
頁面的一次往返處理
頁面重建
ASP.NET 中頁面處理的內部過程:(1)Page_load (2)事件處理 (3)Page_Unload
6、ASP.NET 中主要服務器控件:(1)文本輸入控件(2)按鈕控件(3)復選控件(4)單選控件(5)列表框(6)RequiredField-Validator(7)ValidationSummary(8)選擇控件(9)IMAGEBUTTON控件(10)列表控件
ManagerProvider:ADO.NET的Managed Provider是一個多層結構的無連接的一致的編程模型。Managed Provider提供了DataSet和數(shù)據(jù)中心(如MS SQL)之間的聯(lián)系。Managed Provider包含了存取數(shù)據(jù)中心(數(shù)據(jù)庫)的一系列接口。主要有三個部件:
(1)連接對象Connection、命令對象Command、參數(shù)對象Parameter提供了數(shù)據(jù)源和DataSet之間的接口。DataSetCommand接口定義了數(shù)據(jù)列和表映射,并最終取回一個DataSet。
(2)數(shù)據(jù)流提供了高性能的、前向的數(shù)據(jù)存取機制。通過IdataReader,你可以輕松而高效地訪問數(shù)據(jù)流。
(3)更底層的對象允.許你鏈接到數(shù)據(jù)庫,然后執(zhí)行數(shù)據(jù)庫系統(tǒng)一級的特定命令。
DataSet:DataSet是ADO.NET的中心概念。可以把DataSet想像成內存中的數(shù)據(jù)庫。正是由于DataSet,才使得程序員在編程時可以屏蔽數(shù)據(jù)庫之間的差異,從而獲得一致的編程模型。DataSet,支持多表、表間關系、數(shù)據(jù)約束等。這些和關系數(shù)據(jù)庫的模型基本一致。
ADO訪問數(shù)據(jù)庫的步驟:
(1)創(chuàng)建一個到數(shù)據(jù)庫的鏈路;(2)查詢一個數(shù)據(jù)集合;(3)對數(shù)據(jù)集合進行需要的操作;
(4)關閉數(shù)據(jù)鏈路。
ADO。NET訪問數(shù)據(jù)庫的步驟:
(1)創(chuàng)建一個到數(shù)據(jù)庫鏈路;(2)請求一個記錄集合;(3)把記錄集合暫存到DataSet;(4)如果需要,返回第2步;(5)關閉數(shù)據(jù)庫鏈路;(6)在DataSet上做所需要的操作。
簡要敘述ASP.NET中的頁面數(shù)據(jù)緩存技術。
答:ASP.NET提供了一個相當出色的緩存引擎機制,它允許頁面保存和索引HTTP請求所要求的各種各樣的對象。ASP.NET的緩存對各個應用來說是私有的,是存儲各種對象的存儲器。緩存的生命周期取決于應用的生存周期,也就是說,當應用重新啟動時,緩存實際上也已重建。
ASP.NET提供了三種緩存替換的策略:
1."腐爛搜索"(Scavenging)。比較類似于“最近最少使用”替換原則,當內存變得比較緊張時,緩存機制會找出最不常用和最不重要的對象,把它從內存中移出,以減輕系統(tǒng)壓力。
2.“到期控制”(Expiration)。編程者可以指定緩存對象的生存周期,這種指定的時間可以是絕對的也可以是相對的。
3.“文件和鍵值依賴”。從外部文件或者是其它緩存鍵值是否改變,來決定本身鍵值是否有效。如果依賴發(fā)生改變,緩存對象將變得不可使用,并從緩存中移動出來。
互聯(lián)網(wǎng)軟件應用與開發(fā)筆記二
第五章
客戶機服務器結構及特點:
1把處理任務在客戶和服務器分開2減少主機網(wǎng)絡負荷3數(shù)據(jù)庫與客戶應用程序無關4數(shù)據(jù)庫平臺和操作系統(tǒng)無關,訪問數(shù)據(jù)庫和客戶使用的操作系統(tǒng)沒有關系5維護數(shù)據(jù)庫的完整性。
對于客戶,網(wǎng)絡,服務器來說,它們各司其職:
(1)客戶端:
建立或斷開與服務器的連接
提交訪問數(shù)據(jù)請求
等待接受結果或服務器發(fā)來的錯誤信息
數(shù)據(jù)的輸入輸出及驗證
提供一個良好的用戶界面
(2)網(wǎng)絡
保證客戶及服務器的物理連接
支持多種網(wǎng)絡協(xié)議
(3)服務器端
管理多用戶的數(shù)據(jù)庫
管理用戶權限及保證數(shù)據(jù)的安全性
管理和處理用戶的請求,包括請求隊列,響應請求,通知服務完成返回結果
維護數(shù)據(jù)庫,包括備份和恢復
客戶機和服務器的對話過程大致如下:
(1)(客戶機):
向用戶提供請求的方法
將你的請求發(fā)送給某個服務器
接受服務器返回的結果,經(jīng)過適當解釋,呈交HTML文檔或傳遞各種文件適當?shù)臑g覽器
(2)服務器
接受請求
對請求進行合法性檢查及安全屏蔽
針對請求獲取并制作數(shù)據(jù),包括使用CGI腳本為文件設置適當?shù)?/span>MIME類型
把結果發(fā)送給提出請求的客戶機
Web數(shù)據(jù)庫的編程要點:
(1) 編寫html表單,搜集用戶信息,通過Submit向CGI提交。
(2) 根據(jù)傳遞參數(shù)的方式(post/get),CGI腳本獲取用戶數(shù)據(jù)。
(3) 解碼。數(shù)據(jù)串都采用固定的URL格式編碼,解碼是標準的。
(4) CGI腳本根據(jù)用戶要求,執(zhí)行相應數(shù)據(jù)庫客戶程序通過約定通路訪問數(shù)據(jù)庫。
(5) 將數(shù)據(jù)庫客戶獲得執(zhí)行結果返回給標準輸出Stdout.
Web數(shù)據(jù)庫:是由Web服務器、數(shù)據(jù)庫接口(CGI)和數(shù)據(jù)庫三大部分組成。
Web服務器的安全:提供了二種安全保護措施1授權和加密。
Web服務器的性能指標:
(1) 速度:(2) 建立和維護(3) 對用戶保持跟綜(4) 安全性:(5) 其他特性
ODBC是Microsoft公司開發(fā)的一套開放數(shù)據(jù)庫系統(tǒng)的應用程序接口規(guī)范。
ODBC的體系結構:該體系結構由四個層次組成:
(1)應用程序(2)驅動程序管理器(3)數(shù)據(jù)庫驅動程序(4)數(shù)據(jù)源
數(shù)據(jù)源:是指提供數(shù)據(jù)資源的實體,它可能是用在臺式數(shù)據(jù)庫應用程序中的單個文件或者它是一個充分發(fā)展的相關數(shù)據(jù)庫處理系統(tǒng)。
ODBC定義的驅動程序類型:單層驅動和多層驅動
單層驅動程序不僅要處理ODBC調用,還要解釋執(zhí)行SQL語句,執(zhí)行DBMS的功能。多層驅動程序僅僅處理應用程序的ODBC函數(shù)調用和數(shù)據(jù)轉換。
ODBC的特性:ODBC接口的最顯著的優(yōu)點在于互操作性和一致性級別
ODBC提供了兩方面的一致性級別:ODBC API一致性級別和ODBC SQL語法一致性級別
ADO主要是用于Client/server或Internet/Intranet環(huán)境下,它的特性主要表現(xiàn)在:
(1) 獨立創(chuàng)建的對象(2) 對批量更新的支持(3) 支持存儲過程 (4) 支持不同的光標類型:包括支持后臺光標的潛力。(5) 支持返回數(shù)據(jù)量限制(6) 支持Multiple Recordset:從存儲存儲過程或批處理過程返回值,支持多個結果。
ADO對象模型中有7個對象:
(1) Connection對象:就是處理連接的對象。一個Connection對象代表了一個打開的與數(shù)據(jù)源的連接,用它提供的方法可以處理連接中的主要問題,Connection對象中的Errors集合,可以對各種數(shù)據(jù)庫操作造成的錯誤進行處理。
(2) Recordset對象:一個Recordset對象代表了對數(shù)據(jù)庫操作返回的整個結果集,在任何時候,Recordset對象只代表當前結果集中的記錄,可以修改數(shù)據(jù)庫。
(3) Command對象:它可以像用Connection和Recordset對象那樣執(zhí)行查詢,不同在于它可以在數(shù)據(jù)庫源上準備、編譯查詢并且反復使用一組不同值來發(fā)出查詢。
(4) Field對象:一個Field對象就代表了具有相同數(shù)據(jù)類型的一列數(shù)據(jù)。
(5) Parameter對象:它代表了一個因為參數(shù)化查詢或存儲過程而與Command對象相關的參數(shù)或參量,很多Provider支持帶參數(shù)的命令。
(6) Property對象:一個Property對象代表一個被Property定義的ADO對象的屬性。ADO對象有兩種類型的屬性:內置型和動態(tài)型。
(7) Error對象:一個Error對象包含了一次數(shù)據(jù)操作所產(chǎn)生的錯誤的詳細信息。
1.簡述“授權”的概念和優(yōu)缺點。
答:授權要求用戶通過口令訪問Web頁,是用相同或不同的“用戶名/密碼”登陸進入特定的系統(tǒng)。對某些服務器來說,可用授權屏幕保護單獨的頁不受非法侵入,甚至可以保護整個目錄。它的缺點是,過于麻煩,每次鏈接都要敲入口令,另外也容易被人監(jiān)聽到用戶的密碼。
5.簡述ODBC系統(tǒng)的組成結構。
答:ODBC體系結構由四個部分組成:
(1)應用程序。調用ODBC函數(shù),處理查詢結果。
(2)驅動程序管理器。為應用程序安裝驅動程序,定義數(shù)據(jù)源。
(3)數(shù)據(jù)庫驅動程序。處理ODBC調用、向數(shù)據(jù)源提交SQL語句、接受查詢結果。
(4)數(shù)據(jù)源。應用程序要訪問的數(shù)據(jù)庫服務器。
6. 簡述ODBC驅動程序管理器的作用。
答:驅動程序管理器提供了窗口式驅動程序管理和數(shù)據(jù)源管理,是一個Windows的應用程序,名為ODBC32.EXE,其功能具體包括以下幾點:
(1)裝載指定的ODBC驅動程序。
(2)定義數(shù)據(jù)源,在ODBC.INI文件中把數(shù)據(jù)源名映射到指定的驅動程序動態(tài)鏈接庫。
(3)支持驅動程序函數(shù)的表格,為其提供ODBC函數(shù)入口點。
(4)處理ODBC初始化調用,為ODBC調用提供參數(shù)驗證和次序驗證。
7.簡述ODBC數(shù)據(jù)庫驅動程序的作用。
答:ODBC應用程序并不直接存取數(shù)據(jù)庫。ODBC函數(shù)調用和與數(shù)據(jù)源交互功能都是由驅動程序作為中間媒介,其主要功能包括以下幾點:
(1)建立與數(shù)據(jù)源的連接;
(2)向數(shù)據(jù)源提交SQL請求,執(zhí)行SQL語句;
(3)根據(jù)實際需要,將發(fā)送的數(shù)據(jù)或是讀取的數(shù)據(jù)進行必要的格式轉換;
(4)返回處理結果;
(5)將數(shù)據(jù)源錯誤轉換為ODBC標準錯誤代碼,返回給應用程序;
(6)提交事務的初始化請求,事物完成請求或撤消請求;
(7)根據(jù)需要聲明和使用游標。
8.簡述ODBC規(guī)范定義的驅動程序中兩種類型的含義(單層和多層)。
答:ODBC規(guī)范定義的驅動程序有兩種類型:單層驅動和多層驅動。
第六章
事件模型:DOM中指定元素進行交換的那部分稱為Event Model(事件模型)。
事件:所謂“事件”指一系列對網(wǎng)頁進行的動作,諸如將鼠標在一頁面元素上移動(Onmouseover)、進行網(wǎng)頁發(fā)布(Onload)、提交一個反饋表格(Onsubmit)、單擊反饋表輸入?yún)^(qū)(Onfocus)等。
DHTML:Dynamic HTML是一種即使在網(wǎng)頁下載到瀏覽器以后仍然能夠隨時變換的HTML。動態(tài)HTML包括的技術有:JavaScript、VBDocument Object Model(文檔對象模型)、Layers和CSS等。
對象成員:每個對象都有其成員。成員是對象的屬性、方法和事件。屬性就是品質;方法就是對象可以做的事情;事件是對象可能發(fā)生的事情,通常是用戶所做事情的結果。
Dynamic HTML:是一種即使在見面下載到瀏覽器以后仍然能夠隨時變換的HTML。它使得站點的展示比以前更加豐富多彩,更多的定制方法;更多的分析大量數(shù)據(jù)的手段;與訪問者能進行更多樣化的交互。動態(tài)HTML是一種通過各種技術的綜合發(fā)展而得以實現(xiàn)的概念,這些技術包括JavaScript、VBScript、Document Object Model(DOM) Layers、CSS等。
構成DHTML的各種技術:
1、客戶端的腳本語言(JS、VBS)2、文檔對象模型(DOM)3、層疊樣式表(CSS)
層疊樣式表:由于CSS屬于DOM的一部分,它的屬性也可以通過動態(tài)HTML編寫語言得到體現(xiàn),因此能夠實現(xiàn)頁面外在視覺效果方面的幾乎一切變化。通過改變頁面元素的CSS屬性(如顏色、位置、大?。?,可以達到計算機的帶寬和處理器運行速度允許范圍內的一切效果。
文檔對象模型(DOM):這是一種層次式結構,允許程序員引用(以及*作)Web頁中的任何對象(表格、表單、圖形等)。程序員可以利用網(wǎng)頁中的每個對象。DOM是動態(tài)網(wǎng)頁的真正核心內容。正是它使得HMTL具備了變動性。DOM體現(xiàn)的是網(wǎng)頁元素的等素關系,這些元素在指定的瀏覽器上呈現(xiàn)。(包括:時空背景信息/時間日期等)
DOM的對象:DOM允許程序員使用腳本語言訪問和利用所有的HTML元素(指 的主命令)。在理論上,可以用DHTML去編程控制所有的屬性、所有的級聯(lián)樣式表、以及所有的嵌入對象、圖像和文本。
窗口對象:一種頂級對象。可以用這個對象去發(fā)現(xiàn)窗口的URL或構造按鈕,在瀏覽器中模擬Back和Forward按鈕,這幾個按鈕通過用戶的網(wǎng)絡沖浪歷史記錄轉到不同的URL。
DHTML的集合:有些對象實際上是一些對象的集合(就像陣列組)。通常,以S結束的對象就是一個集合,當然,AII對象同樣也是一個集合(文檔中的所有東西)。在引用對象或對象串(幾個對象用句點分開)時,可能會出現(xiàn)不一致性。
修改HTML內容:
要修改容器元素(比如DIV,H2或SPAN中的內容),可以利用innerHTML或innerTEXT屬性。要修改元素本身及其內容,應當用outerHTML屬性。
以text結束的屬性有innerText和outerText兩種,分別提供了對象的文本內容(不含標記)。以HTML結束的哪兩個屬性,innerText和outerHTML,也提供了相同的內容,但同時還包括了所有的HTML標記。
如果想保持現(xiàn)有的元素和文本,并添加新的元素和文本到現(xiàn)有代碼中,可以用insertAdjacent或insertAdjacentText。
理解TextRange中的方法:FindText要求三個參數(shù):目標串,查找的字符數(shù)(正值,表示前向查找,負值則表示后向查找)以及是否要全文匹配及查找是否區(qū)分大小寫(2表示全文匹配,4表示大小寫區(qū)分,6表示大小寫區(qū)分且全文匹配,只有第一個參數(shù)(目標串)是必須的,其他參數(shù)若無選定,則默認為部分單詞(任何字符,不需要將空格去掉)和不區(qū)分大小寫。
要在文檔中查找文本段,并用其他文本替換這些文本段,可以用TextRange對象的文本屬性。
1.列出5個以上的DHTML DOM中的集合。
all anchors applets areas cells
children elements embeds filters forms
frames imports links options
plugins rows rules scripts stylesheets
bodies
2.簡述構成DHTML的各方面技術。
答:DHTML主要包括以下三方面的技術:
(1)客戶端的腳本語言:運用服務器端編寫腳本能使網(wǎng)頁中更多的HTML功能元素(HTML Elements)得到發(fā)揮。
(2)文檔對象模型(DOM):在某種意義上,DOM是動態(tài)HTML的真正核心內容。正是它使得HTML具備了變動性。DOM體現(xiàn)的是網(wǎng)頁元素的等級關系,并且這些元素在指定的時間在瀏覽器上呈現(xiàn)。
(3)層疊樣式表(Cascading Style Sheets,CSS):由于CSS屬于DOM的一部分,它的屬性也可以通過動態(tài)HTML編寫語言得到體現(xiàn),因此能夠實現(xiàn)頁面外在視覺效果方面的幾乎一切變化。
3.簡述窗口對象的地位和一般用途。
答:窗口對象是一種頂級對象??梢杂眠@個對象去發(fā)現(xiàn)窗口的URL或構造按鈕,在瀏覽器中模擬Back和Forward按鈕,這幾個按鈕通過用戶的網(wǎng)絡沖浪歷史記錄轉到不同的URL。同樣可以用Windows決定當前文檔是否屬于簡單結構,或包含一圖文框集,分成一個或多個子窗口。
第七章
頭文件:頭文件是一個外部文件,它的內容可以被多個程序文件所引用,并包含在引用它的文件之中。
$GLOBALS數(shù)組:$GLOBALS數(shù)組是一個聯(lián)合數(shù)組使用“global”為變量的名字,全局變量作為改變量數(shù)組其中某個元素的值。$GLOBALS數(shù)組是PHP程序中比較特殊的變量,不必宣告,系統(tǒng)會自動匹配相關的變量在里面。在函數(shù)中,也不管$GLOBALS數(shù)組是否已經(jīng)做全局聲明,就可以直接使用了。
PHP:是一種服務器端HMTL嵌入式腳本描述語言,其最大特色在于在互聯(lián)網(wǎng)網(wǎng)頁上對數(shù)據(jù)庫操作的方便性。
PHP語言具有以下特點:
(1) 支持多種系統(tǒng)平臺。
(2) 具有自由軟件的特性。
(3) 版本更新速度快。
(4) 容易與現(xiàn)有的網(wǎng)頁整合。
(5) 具有豐富的功能。從結構化的特性、對象式的設計、數(shù)據(jù)庫處理、網(wǎng)絡接口使用、到安全編碼機制等,幾乎完整地包括所有網(wǎng)站所需要的功能。
(6) 系統(tǒng)移植速度快。少許修改,就可以將整個網(wǎng)站從一個平臺上移到另一平臺。
PHP和CGI的比較:
(1) 寫CGI的方式有很多種,PHP只是其中一種。
(2) PHP可用在數(shù)種Web服務器上,傳統(tǒng)CGI也不限制是哪種*作系統(tǒng)或Web服務器平臺,NSAPI卻一定要在Netscape的服務器上才可執(zhí)行。
(3) 在穩(wěn)定性上,由于NSAPI或ISAPI是動態(tài)鏈接的方式,因此在執(zhí)行時若出現(xiàn)問題,會使得Web服務器一起癱瘓。ASP在實際應用上,由于系統(tǒng)的原因,不是很穩(wěn)定,有時需要重起*作系統(tǒng)。PHP在許多的平臺使用上,不但長期使用都沒有問題,而且程序的穩(wěn)定性。
(4) 在開發(fā)及維護時間上,PHP及ASP都有不錯的表現(xiàn)。而NSAPI及ISAPI則需要長時間的開發(fā)過程,在穩(wěn)定運行后,這二種接口反倒是效率最佳的方法。
(5) 要比較和網(wǎng)頁結合的能力,PHP及ASP是并駕齊驅的,其他方式就不能內嵌HTML語法了,而這也是影響開發(fā)時間的因素之一。
(6) 在新增功能及升級方面,傳統(tǒng)的CGI由于不受任何語言限制,沒有這方面的問題。PHP是最有活力的,數(shù)天至數(shù)周就有一個新版本出現(xiàn),每次的新版,就代表更多的功能及修正更多的錯誤。綜上所述,所以PHP處于開發(fā)容易、性能變不錯的平衡點上。正因為這種原因,PHP成為了當前最有前途的網(wǎng)絡程序開發(fā)語言之一。
7.3 PHP語言基礎
7.3.1 PHP語言中的簡單約定
PHP代碼在HTML中的嵌入形式:PHP嵌入HTML文檔是使用了“<? Php ”開始,而到“?”>“結束。還可以使用諸如“<?”和“?>”。“<script language="php">"和"</script>"甚至是在ASP中使用的“<%"和"%>"來嵌入PHP代碼。
MYSQL 的特點:是真正的多線程、多用戶的數(shù)據(jù)庫系統(tǒng);真正支持多平臺;支持SQL92標準;在客戶端程序上,MYSQL提供了多種不同的編程語言;具有豐富的數(shù)據(jù)類型,并且完全支持ODBC。
7.3.5 PHP的數(shù)據(jù)類型、運算符和表達式
PHP支持多種數(shù)據(jù)類型
Integer 整型、Double 浮點型、String 字符串
Array 數(shù)組、Object 對象、pdfinfo和pdfdoc PDF信息
環(huán)境變量
PHP自動使用環(huán)境變量作為普通變量:echo $HOME
PHP可使用內置函數(shù)讀取外界的環(huán)境變量信息:getenv( );
PHP可使用內置函數(shù)設置外界的環(huán)境變量值:putenv( );
PHP的數(shù)組處理
通過函數(shù)處理數(shù)組:asort( ), arsort( ), ksort( ), rsort( ),sort( ), unsort( ), usort( )等函數(shù)可用于排序,count( ) 用于統(tǒng)計數(shù)組中的元素個數(shù),next( ), prev( ), each( )等函數(shù)可用于遍歷數(shù)組
算術運算符
+、-、*、/、( )、mod( )等
字符運算符
· 連接符 $a=“Hello”; $b=“World”; $c = $a · $b
賦值運算符
=、+=、·=、-=、*=、/= 等,除=外其他運算符稱為復合運算符
位運算符
按位進行運算的符號:&、|、~ 參見p.157
邏輯運算符
and、or、xor、&&、|| 、!
比較運算符
==、!=、<、<=、>、>=
其他運算符
$ 變量
&(加在變量前,表示變量的指針)
@(加在函數(shù)前不顯示錯誤信息)
->(引導對象的方法或屬性)
=>(引導數(shù)組的元素值)
?:(三元運算符)
(expr1) ? (expr2) : (expr3)
類似 if … then … else …
簡述PHP所具有的特點。
答:(1)支持多種系統(tǒng)平臺。(2)具有自由軟件的特性。(3)版本更新速度快。(4)容易與現(xiàn)有的網(wǎng)頁整合。提供交互功能,修改的成本底,讓網(wǎng)頁美工及程序開發(fā)人員更能各司其職。
(5)具有豐富的功能。從結構化的特性、對象式的設計、數(shù)據(jù)庫處理、網(wǎng)絡接口使用、到安全編碼機制等,幾乎完整地囊括所有網(wǎng)站所需的功能。
(6)系統(tǒng)移植速度快。只需少許修改,就可以將整個網(wǎng)站從Windows平臺上轉移到Unix平臺上。
3.簡述兩種在PHP中引用頭文件的方法,以及這兩種方法的不同。
答:在PHP中引用頭文件的方法是很簡單的,只要在程序文件中引用頭文件名,這個頭文件就包含進來了。引用頭文件涉及兩個函數(shù):include和require。
require函數(shù)的工作方式類似于SSI,不管在程序的那一個部分使用這個函數(shù),只要程序一引用,頭文件的內容就作為主程序的一部分來運行。如果你在一個條件控制語句使用這個函數(shù),哪怕這個條件不為真,頭文件也會包含進來。而include函數(shù)則是相反的,在執(zhí)行語句中,只有執(zhí)行到這個函數(shù)語句時,這個函數(shù)所引用的頭文件才會包含到主程序中。這就意味著,在條件判定部分使用include函數(shù)時,可以完全按照你的愿望工作。
require和include函數(shù)不同之處在于,如果發(fā)生了包含錯誤,require函數(shù)會給出錯誤信息并終此程序執(zhí)行,而include函數(shù)只是給出錯誤信息,而程序還會自動執(zhí)行下去。
4.試對PHP與其他CGI在穩(wěn)定性上進行比較。
答:在穩(wěn)定性上,由于NSAPI或ISAPI是動態(tài)鏈接的方式,因此在執(zhí)行時若出現(xiàn)問題,會使得Web服務器一起癱瘓。
而ASP在實際的應用上,可能是因為系統(tǒng)的原因,不是很穩(wěn)定,有時需要重啟操作系統(tǒng)。
PHP在許多的平臺上使用,不但長期使用沒有問題,而且程序的穩(wěn)定性也不錯。
當然最穩(wěn)定還是傳統(tǒng)CGI程序,因為它是由操作系統(tǒng)負責控制,不會因CGI程序的錯誤導致Web服務器的不穩(wěn)定。
5.簡述MySQL的主要特點。
答:(1)MySQL是真正多線程、多用戶的數(shù)據(jù)庫系統(tǒng),特別是他的多線程是直接使用了系統(tǒng)核心的多線程內核,效率相當高。
(2)MySQL是真正支持多平臺的,這就使得跨系統(tǒng)的開發(fā)成為可能。
(3)支持SQL92標準,可以使用所有的SELECT和WHERE語法。
(5)豐富的數(shù)據(jù)類型(6)可以在一次操作中從不同的數(shù)據(jù)庫中混合表格。
(7)完全支持ODBC,可以在Windows95和Windows NT上使用Access來進行數(shù)據(jù)庫的連接。
第八章 Java Servlet技術介紹
名詞解釋
1.Servlet:Servlet可以被認為是服務器端的Applet。Servlet被Web服務器加載和執(zhí)行,就如同Applet被瀏覽器加載和執(zhí)行一樣。.Servlet從客戶端(通過Web服務器)接收請求,執(zhí)行某種作業(yè),然后返回結果。
使用Servlet的基本流程如下:
(1)客戶端(很可能是Web瀏覽器)通過HTTP提出請求。
(2)Web服務器接收該請求并將其發(fā)給Servlet。如果這個Servlet尚未被加載,Web服務器將把它加載到Java虛擬機并且執(zhí)行它。
(3)Servlet將接收該HTTP請求并執(zhí)行某種處理。
(4)Servlet將向Web服務器返回應答。
(5)Web服務器將從Servlet收到的應答發(fā)送給客戶端。
Servlet可完成的功能
1) 創(chuàng)建并返回基于客戶請求的動態(tài)HTML頁面
2) 創(chuàng)建并嵌入到現(xiàn)有的HTML頁面中的部分HTML頁面(HTML片段)
3) 與其他服務器資源(如數(shù)據(jù)庫或基于Java的應用程序)進行通信
4) 接受多個客戶機的輸入并將結果傳播到多個客戶機上
5) 根據(jù)客戶請求采用特定的MIME類型對數(shù)據(jù)過濾
Servlet的獨特優(yōu)點
1) Servlet是持久的
2) Servlet是可擴展的
3) Servlet是安全的
4) Servlet可以在多種多樣的客戶機上使用
8.1.5 Java Servlet與現(xiàn)有網(wǎng)絡技術的差別
1、Servlet與Applet的差別
Servlet與Applet是截然相反的,Servlet可以被視為服務器端的Applet
Servlet在網(wǎng)絡服務器內運行,Applet在網(wǎng)絡瀏覽器內運行
瀏覽器提交一個請求執(zhí)行Servlet的命令,瀏覽器可直接命令Applet,所以它可以在運行時單機運行
2、Servlet與CGI的差別
1) 與傳統(tǒng)的CGI和其他許多類似CGI的技術相比,Java Serlet具有更高的效率,更容易使用,功能更強大,具有更好的可移值性,更節(jié)省投資
2) 在傳統(tǒng)的CGI中,如果有N個并發(fā)的對同一CGI程序的請求,則該CGI程序的代碼在內存中將重復被裝載N次;而對于Servlet,處理請求的是N個線程,只需要一份Servlet類代碼
3) 在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇
8.2 Servlet API
Servlet的框架
1 Servlet的框架是由兩個Java包組成
6) javax.servlet
7) 定義了所有的Servlet類都必須實現(xiàn)或擴展的通用接口和類
8) javax.servlet.http
9) 定義了采用HTTP協(xié)議通信的HttpServlet類
10) Servlet的框架的核心是javax.servlet.Servlet接口
11) 所有的Servlet都必須實現(xiàn)這一接口
12) 在Servlet接口中定義了 5 個方法,其中 3 個方法代表了Servlet的生命周期
13) Init方法,負責初始化Servlet對象
14) Service方法,負責響應客戶的請求
15) Destroy方法,當Servlet對象退出生命周期時,負責釋放占用的資源
用戶擴展類
1. 擴展GenericServlet類
2. 擴展HttpServlet類
8.3.Servlet的生命周期:Servlet的生命周期定義了一個Servlet如何被加載、初始化,以及它怎樣接收請求、響應請求、提供服務。
1. 代碼中,Servlet生命周期由接口javax.servlet.Servlet定義
2. 所有的Java Servlet必須直接或間接地實現(xiàn)javax.servlet.Servlet接口才能在Servlet Engine上運行
Servlet生命周期的四項重要活動
1. Servlet的裝載(Load)和實例化(Instantiated)
2. Servlet的初始化(Initialized)
3. Servlet處理請求
4. Servlet被釋放
簡答題
1.簡述Servlet的優(yōu)點。
答:Servlet可以很好地替代通用網(wǎng)關接口(Commmon Gateway Interface,CGI)腳本。通常CGI腳本是用Perl或者C語言編寫的,它們總是和特定的服務器平臺緊密相關。而Servlet是用Java編寫的,所以它們一開始就是和平臺無關的。這樣,Java編寫一次就可以在任何平臺運行(Write Once, Run Anywhere)的承諾就同樣可以在服務器上實現(xiàn)了。Servlet還有一些CGI腳本所不具備的獨特優(yōu)點。
(1)Servlet是持久的。Servlet只需Web服務器加載一次,而且可以在不同請求之間保持服務(例如一次數(shù)據(jù)庫連接)。與之相反,CGI腳本是短暫的、瞬態(tài)的。每一次對CGI腳本的請求,都會使Web服務器加載并執(zhí)行該腳本。一旦這個CGI腳本運行結束,它就會被從內存中清除,然后將結果返回到客戶端。CGI腳本的每一次使用,都會造成程序初始化過程(例如連接數(shù)據(jù)庫)的重復執(zhí)行。
(2)Servlet是可擴展的。由于Servlet是用Java編寫的,它就具備了Java所能帶來的所有優(yōu)點。Java是健壯的、面向對象的編程語言,它很容易擴展以適應用戶的需求。Servlet自然也具備了這些特征。
(3)Servlet是安全的。從外界調用一個Servlet的唯一方法就是通過Web服務器。這提供了高水平的安全性保障,尤其是在Web服務器有防火墻保護的時候。
(4)Servlet可以在多種多樣的客戶機上使用。由于Servlet是用Java編寫的,所以可以很方便地在HTML中使用它們,就像使用Applet一樣。在本書中將看到這一點。
使用Servlet的方式多得超出想象。如果考慮到在服務器上所能訪問到的所有服務(如數(shù)據(jù)庫服務和老的系統(tǒng)),使用Servlet的方式實際上可能是無限的。
2.簡述Servlet的生命周期。
答:Servlet的生命周期定義了一個Servlet如何被加載、初始化,以及它怎樣接收請求、響應請求、提供服務。
Web容器加載Servlet,生命周期開始。通過調用Servlet的init方法進行Servlet的初始化。通過調用Servlet方法實現(xiàn),根據(jù)請求的不同調用不同的do***方法。結束服務,Web容器調用Servlet的destroy方法。
第九章 JSP 技術介紹
Servlet所帶來的問題
1. 開發(fā)和維護應用程序的所有部分需要有深厚的Java編程知識,因為處理代碼和HTML元素是交織在一起的
2. 改變應用程序的外觀和風格,或者加入對某種新類型客戶機的支持時,都需要更新并重新編譯Servlet代碼
3. 很難利用網(wǎng)頁開發(fā)工具的優(yōu)勢來設計應用程序界面。如果用這些工具來開發(fā)網(wǎng)頁布局的話,生成的HTML代碼必須被手工嵌入到Servlet代碼中,費時易錯枯燥
引入JSP的優(yōu)勢
將請求處理和商務邏輯與外觀呈現(xiàn)分開后,允許我們將開發(fā)任務分派給擁有不同技術的人來完成
JSP應用模型
1. 模型一:JSP+JavaBean模型
模型一的缺陷: 使用這種方式需要在JSP頁面使用大量的Java代碼,當需要處理的業(yè)務邏輯很復雜時,這種情況會變得很糟糕,大量嵌入的代碼使整個頁面程序變得十分復雜
2. 模型二:JSP+Servlet+JavaBean模型
模型一的優(yōu)點:具有清晰的頁面表現(xiàn)
9.1.4 JSP頁面執(zhí)行過程
1. 當web服務器接受到web客戶的一個JSP文件請求時,對JSP文件進行語法分析并生產(chǎn)Java Servlet源文件,然后進行編譯
2. 一般情況下,Servlet源文件的生成和編譯僅在初次調用JSP時發(fā)生,如果原始的JSP文件被更新,web服務器將檢測所做的更新,執(zhí)行之前重新生成Servlet并進行編譯
9.1.5 JSP與ASP的簡單比較
相同:
1. JSP與ASP非常相似,兩者都提供在HTML代碼中混合某種程序代碼、并由語言引擎解釋執(zhí)行程序代碼的能力
2. ASP和JSP都是面向web服務器的技術,客戶端瀏覽器不需要任何添加的軟件支持
區(qū)別:
Asp的編程語言是VBscript之類的腳本語言,Jsp使用的是Java。在Asp下,Vbscript代碼被Asp引擎解釋執(zhí)行,在Jsp下,代碼被編譯成Servlet并有Java虛擬機執(zhí)行。
9.2 JSP的組成
模板元素:模板元素是指JSP的靜態(tài)HTML或者XML內容,它對JSP的顯示是非常必要的。這部分的任務主要由制作網(wǎng)頁的美工來完成。
在JSP編輯時,它將把這些模板元素編譯到Servlet里。當客戶請求次JSP時,它會把這些模板元素一字不變地發(fā)送到客戶端。
9.2.2 指令元素
1. 頁面指令 格式: <%@ page %>
2. Include指令 格式: <% @ include file="filename" %>
3. Taglib指令 格式: <% @ taglib uri="taglibURI" prefix="tagPrefix" %>
uri用來表示標簽描述符,tagPrefix定義了在JSP頁面里引用標簽時的前綴,這些前綴不可以是jsp、jspx、java、javax、sun、servlet、sunw等
9.2.3 腳本元素
腳本元素有三種類型
1. 聲明(Declaration) <% ! >
2. 表達式(Expression)<% =value %>
3. Scriptlets <% %>
9.2.4 動作元素
標準動作
1. <jsp:useBean>
2. <jsp:setProperty>
3. <jsp:getProperty>
4. <jsp:param>
5. <jsp:include>
6. <jsp:forward>
7. <jsp:plugin>
9.2.5 JSP內建對象
Request:Request對象有它的請求訪問,它將包裝成HttpServletRequest接口。來自客戶端的請求經(jīng)JSP處理后,由Request對象進行封裝。它將作為給jspService方法的一個參數(shù)而由容器傳遞給JSP頁面。通過getParameter(String paramaeterName)方法可以得到Request參數(shù),通過GET、P0ST、HEAD等可以得到Request的類型,通過Cookies、Referer等可以得到引入的Http頭。通用的方法有:request.getParameter(String name)、request.getParameterNames、request.setCharacterEncoding(String encoding)等。
Response對象:Response對象具有頁面的范圍,它被包裝成HttpServletResponse接口。他封裝了JSP產(chǎn)生的響應,然后被發(fā)送到客戶端以響應客戶的請求。同樣,它由容器生成,作為jspService方法的參數(shù)被傳入JSP。因為輸出流是緩沖的,所以可以設置HTTP狀態(tài)碼和Response頭。常用的操作有:response.sendRedirect("newURL")、response.setHeader("HeadInfo")等。
簡答題
1. 簡述Servlet帶來的問題。
答:純Servlet存在以下一些問題:
(1)開發(fā)和維護應用程序的所有部分需要有深厚的Java編程知識,因此處理代碼和HTML元素是交織在一起的。
(2)改變應用程序的外觀和風格,或者加入對某種新類型客戶機(如WML客戶機)的支持時,都需要更新并重新編譯Servlet代碼。
(3)很難利用網(wǎng)頁開發(fā)工具的優(yōu)勢來設計應用程序界面。如果使用這些工具來開發(fā)網(wǎng)頁布局的話,生成的HTML代碼必須被手工嵌入到Servlet代碼中,這個過程既耗時又容易出錯,而且極度枯燥乏味。
2. 簡述JSP中的指令元素。
答:指令是用于從JSP發(fā)送到容器上的一個信息。它用來設置全局變量,聲明類要實現(xiàn)的方法和輸出內容的類型等。它們并不向客戶產(chǎn)生任何輸出,所有的指令都在JSP整個文件范圍內有效。指令元素為翻譯階段提供了全局信息。指令元素使用以下的格式:
<%@ directivename attribute="value",attribute="value"%>
JSP有三種類指令:頁面指令;Include指令;Taglib指令。
下面來分別看這三類指令。
(1)頁面指令。頁面指令定義了許多影響到整個頁面的重要屬性。一個JSP頁面可以包含多個頁面指令,在編譯過程中,所有的頁面指令都被抽出來同時應用到一個頁面里。除了Import外其他的頁面指令定義的屬性值只能出現(xiàn)一次。頁面指令的格式如下:
<%@ page ATTRIBUTE%>
(2)Include指令。Include指令通知容器將當前JSP頁面中內嵌的、在指定位置上的資源內容包含進來。被包含的文件內容可以被JSP解析,這種解析發(fā)生在編譯期間。Include指令如下:<%@ include file="filename"%>
其中filename為要包含的文件名。需要注意的是,一經(jīng)編譯,內容不可變,如果要改變filename的內容,必須重新編譯JSP文件,但是它的執(zhí)行效率高。
(3)Taglib指令。這個指令允許頁面使用者自定義標簽。首先開發(fā)用戶的開發(fā)標簽庫,為標簽庫編寫.tld配置文件,然后在JSP頁面里使用自定義標簽。這樣,容器使用這個標簽庫確定在遇到定制標簽時要怎么做。在JSP規(guī)范里,標簽庫得到了不斷的加強,最新的JSP規(guī)范增加了JSTL標簽庫。JSP的標簽庫在頁面里定義如下:
<%@ taglib uri="taglibURL"prefix="tagPrefix"%>
Uri用來表示標簽描述符,也就是告訴容器怎么找到標簽描述文件和標簽庫。tagPrefix定義了在JSP頁面里要引用這個標簽時的前綴,這些前綴不可以是jsp、jspx、java、javax、sun、servlet、sunw。
第十章 UML建模語言介紹
1. UML是Unified Modeling Language的簡稱
2. UML是一種統(tǒng)一建模語言,統(tǒng)一了Booch方法、OTM方法、OOSE方法的概念和表示法,并作了進一步的發(fā)展,統(tǒng)一為大眾接受的標準建模語言
UML的主要內容
1. UML的語義:UML語義通過元模型來嚴格定義
2. UML的表示法:UML表示法定義了UML的圖形符號
UML表示法分為通用表示和圖形表示兩種
通用表示
1. 字符串:表示有關模型的信息
2. 名字:表示模型元素
3. 標號:表示附于圖形符號的字符號
4. 特定字符串;表示模型元素的特征
5. 類型表達式:聲明屬性變量和參數(shù)
6. 定制:一種機制,用已有的模型元素來定義新的模型元素
圖形表示:5類10種圖
1. 用例圖:表示系統(tǒng)的功能、操作者
2. 靜態(tài)圖:表示系統(tǒng)靜態(tài)結構
3. 行為圖:描述系統(tǒng)的動態(tài)行為及對象間的相互關系
4. 交互圖:描述對象間的動態(tài)合作關系,包括序列圖和合作圖
5. 實現(xiàn)圖:描述系統(tǒng)的物理實現(xiàn)
10.1.3 UML的特點
1. 統(tǒng)一了面向對象方法的基本概念
2. 建模能力更強
3. 獨立于開發(fā)過程
4. UML提出了許多新概念
10.2 通用模型元素
10.2.1 模型元素
1. 模型元素是UML構造系統(tǒng)各種模型的元素,也是UML的基本構造單位
2. 基元素
a) 基元素是指UML已經(jīng)存在或已定義的模型元素,如類、結點 、構件、注釋、關聯(lián)、依賴和泛化等
3. 構造型元素
a) 構造型元素是在基元素的基礎上構造的一種新的元素,它是UML的一種擴展機制
b) 一個構造型元素與它的基元素并無不同,只是增加了新的語義
10.2.2 約束
提供一種簡便、統(tǒng)一及一致的表達方式,描述元素及其構成要素應遵守的限制和應滿足的條件,用于類、關系、關聯(lián)、屬性、操作等元素及其基本構成要素的約束條件。
約束的示例
1. {abstract}:用于類的約束,表明該類是一個抽象類
2. {complete}:用于關系的約束,表明該分類是一個完全分類
3. {hierarchy}:用于關系的約束,表明該分類是一個分層關系
4. {ordered}:用于多重性的約束,表明目標對象是有序的
5. {bag}:用于多重性的約束,表明目標對象多次出現(xiàn)且無序
10.2.3 依賴關系
1. 依賴關系的含義
有兩個元素X、Y,若修改元素X的定義,可能引起對另一個元素Y的定義的修改,則稱元素Y依賴于元素X
2. 依賴關系的表示
用一個帶箭頭的虛線來表示依賴關系。若元素Y依賴于元素X,則畫一個由Y元素指向X元素的虛線箭頭
10.2.4 細化
1. 細化的含義
當兩個元素A、B中,B元素是A元素的詳細描述,則稱B、A元素之間的關系為B元素細化A元素。
2. 細化的表示
兩個元素的細化關系用兩個元素之間帶空心三角形箭頭的虛線表示,箭頭的方向由細化了的元素指向被細化的元素。
10.2.5 注釋
1. 注釋的含義
注釋用于對UML的元素或實體進行說明、解釋和描述,通常用自然語言進行注釋
2. 注釋的表示
注釋由注釋體和注釋連接組成。注釋體的圖符是一個矩形, 右上角翻下, 矩形中標注要注釋的內容。注釋連接用虛線表示,把注釋體與被注釋的對象連接起來
10.3 UML模型描述圖
圖形表示:5類10種圖
1. 用例圖:表示系統(tǒng)的功能、操作者
2. 靜態(tài)圖:表示系統(tǒng)靜態(tài)結構
3. 行為圖:描述系統(tǒng)的動態(tài)行為及對象間的相互關系
4. 交互圖:描述對象間的動態(tài)合作關系,包括序列圖和合作圖
5. 實現(xiàn)圖:描述系統(tǒng)的物理實現(xiàn)
10.3.1 用例圖
用例圖描述了系統(tǒng)提供的一個功能單元
用例圖的主要目的
l 幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求,包括基于流程的角色關系,以及系統(tǒng)內用例之間的關系。
10.3.2 類圖
類圖表示不同的實體(人、事物、數(shù)據(jù))如何彼此相關,顯示了系統(tǒng)的靜態(tài)結構。
10.3.3 序列圖
序列圖顯示具體用例或用例的一部分的詳細流程
10.3.4 狀態(tài)圖
狀態(tài)圖表示某個類所處的不同狀態(tài)和該類的狀態(tài)轉換信息
10.3.5 活動圖
活動圖表示在處理某個活動時,兩個或更多的類對象之間的過程控制流
10.3.6 組件圖
組件圖提供系統(tǒng)的物理視圖。組件圖的用途是顯示系統(tǒng)中的軟件對其他軟件組件的依賴關系
10.3.7 部署圖
部署圖表示該軟件系統(tǒng)如何部署到硬件環(huán)境中
第十一章 Microsoft.NET介紹
1、什么是Microsoft.NET? : Microsoft.NET是Microsoft的XML Web服務平臺。Microsoft.NET包含了建立和運行基于XML的軟件所需要的全部部件。Microsoft.NET是一種面向網(wǎng)絡、支持各種用戶終端的開發(fā)平臺環(huán)境。
2 Microsoft.NET方案組成關鍵部分(3個): .NET構建塊服務、 .NET用戶體驗和.NET基礎結構
3、Microsoft.NET解決了什么核心問題?(5個):
(1)互操作性、集成性和應用程序的可擴展性太難實現(xiàn)而且代價很高;
(2)無數(shù)具有相當競爭力的私有軟件技術使得軟件的集成變得非常復雜;
(3)當終端用戶使用軟件時,他們總覺得不夠簡便;
(4)終端用戶們在使用Web時候,無法對自己的個人信息和數(shù)據(jù)進行控制,這導致了個人隱私和安全泄露問題;
(5)很點com公司和Web站點開發(fā)們很難為用戶們提供足夠的有價值的數(shù)據(jù)。
4、.NET戰(zhàn)略:
(1)NET戰(zhàn)略內容3條:改革商務模型、提高軟件開發(fā)效率、改進用戶界面,并支持多種用戶終端。
(2).NET戰(zhàn)略意義:一場軟件革命。
3條: 1).NET對最終用戶非常重要,因為計算機的功能將會大幅度提升,同時計算機操作也會變得非常簡單。
2 ) .NET對開發(fā)人員來數(shù)也很重要,因為它不但會改變開發(fā)人員開發(fā)應用程序的方法,而且使得開發(fā)人員能創(chuàng)建出全新的各種應用程序,大幅度提高 軟件生產(chǎn)率。
3 ) .NET把雇員、客戶和商務應用程序整合成一個協(xié)調的、能進行智能交互的整體,而各公司無疑將是這場效率和生產(chǎn)力革命最大受益者。
5、Microsoft.NET平臺:(1).NET平臺4個組件: .NET框架和 Visual Studio .NET、
服務器基本結構、Building Block Services、智能設備。
(2).NET體驗(3個方面): .NET體驗可使用于多種設備、 .NET體驗可使用XML Web服務和.NET體驗是以用戶為中心的。
6、.NET框架介紹:集合、系統(tǒng)服務和公共語言運行時(cls)。
11.5 .NET的新特點
1. 一致的編程模式
2. 簡化了的編程模式
3. 運行于多個平臺
4. 支持多語言的綜合
5. 自動資源管理
6. 一致的出錯處理方式
7. 安全性
8. XML和SOAP的引入
9. 全新的編程語言C#
11.6 .NET帶來的好處
1. NET使編程工作變得更加容易,開發(fā)投資的回報率趨于最大化
2. NET減少了程序員編寫代碼的工作量
3. .NET開創(chuàng)了全新的商業(yè)模式,可使企業(yè)用多種方法將自己的技術商品化
4. NET允許IT部門使用其他提供商的XML Web服務,減少內部研發(fā)的開銷
5. NET對“用戶界面友好”做了重新定義
第十二章 J2EE框架介紹
1、J2EE的概念:(Java 2 Enterprise Edition )是企業(yè)級Java平臺。它為以分布式和服務端為主的應用提供了一個平臺,并得到了業(yè)界的廣泛支持。它提供開放和標準的開發(fā)環(huán)境,它為基于分布式個基于組件的軟件開發(fā)提供了一個“操作系統(tǒng)”,J2EE規(guī)范定義了新型分布式應用程序體系結構,解決了N層應用程序開發(fā)的許多問題。它是一套體系結構,而不是一個具體的軟件。(P.264)
J2EE的體系結構:
J2EE的容器體系結構(容器服務API、聲明性服務、組件協(xié)議和其他容器服務等)
應用程序體系結構描述
1. 客戶端可以是web瀏覽器或Java應用程序
2. Web層又叫表示層,其上運行了JSP、JavaBean和Servlets組件,通過調用業(yè)務層的EJB來處理業(yè)務邏輯
3. 業(yè)務層主要運行了EJB,處理系統(tǒng)運算量巨大的業(yè)務邏輯
12.3 J2EE的關鍵技術:
(1)技術基礎(Java HTTP XML)
(2)關鍵技術:
1)核心技術有Servlet,JSP,EJB和JMS技術。
EJB (Enterprise JavaBean)
EJB組件作為EJB容器中的一個管理單元,EJB組件供應商可以選擇由容器來管理EJB組件的事務、安全、資源連接問題等
1 EJB主要由三種Bean組成
會話Bean、實體Bean、消息Bean
實體Bean在EJB2.0中以全新的模型出現(xiàn)
消息Bean是在EJB2.0中菜引入的
2 會話Bean
會話Bean有有狀態(tài)與無狀態(tài)之分
會話Bean可以作為客戶端的狀態(tài)來理解
3 實體Bean
分為BMP(Bean Managed Persistence)和CMP(Container Managed Persistence)
4 EJB調用過程
根據(jù)傳入的屬性,初始化上下文InitialContext
獲取遠程的,或者本地的Home接口
進行Home.create( ),獲取遠程的Home( ),獲取遠程EJB的對象
通過EJB對象調用業(yè)務方法,這些業(yè)務方法會被EJB實現(xiàn)
基礎技術有
JDBC是數(shù)據(jù)庫引擎與開發(fā)人員的程序之間的接口
JNDI是J2EE規(guī)范的一部分,為定位用戶、資源與服務提供了一個標準的接口
RMI-IIOP是J2EE執(zhí)行遠程調用的一種方法
JIA是J2EE架構中性能保證的一個基本技術
與Web相關技術
SOAP基于XML來交換新鮮的輕便協(xié)議
WSDL用來對每個web服務進行描述的 .wsdl文件
UDDI提供了發(fā)現(xiàn)、描述、集成web服務的規(guī)范
UDDI注冊中心為我們提供了注冊自己的web服務的空間
一般而言,注冊中心的數(shù)據(jù)被分為三個部分
白頁:包含注冊web服務的單位的基本信息,其中包括單位的唯一標準符
黃頁:主要通過不同的方式對注冊的web服務進行分類,便于查找
綠頁:主要是對某個單位的web服務進行技術細節(jié)、位置細節(jié)的描述
基于XML相關的Java API
JAXP,JAX-RPC,SAAJ,JAXR等技術。
其他技術
1、JCA(J2EE Connector Architecture)
使得J2EE組件(如EJB組件)可以與EIS(如ERP、CRM、大型事務處理系統(tǒng)等)進行交互
2、Resource Adapter(資源適配器)
12.4.1 J2EE應用現(xiàn)狀
1. 中間件思想的提出與發(fā)展為新事務的產(chǎn)生提供了架構上的準備
2. Internet的興起為新事務產(chǎn)生提供了生長的環(huán)境
3. Java語言誕生為其提供了肥沃的土壤
4. 企業(yè)應用的日益增加,中間件技術進一步成熟
12.4.2 J2EE發(fā)展前景
1. J2EE面臨的挑戰(zhàn)
整體框架上面臨 .NET的挑戰(zhàn)
Web層面上面臨struts的挑戰(zhàn)
EntityBean作為EJB的核心面臨Hibernate的挑戰(zhàn)
2. J2EE面臨的機遇
Annotation的推出將爭回部分市場分額