




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JSP程序設(shè)計(jì)技術(shù)教程
1參考資料教材:甘勇、黃敏、張志鋒,JSP程序設(shè)計(jì)技術(shù)教程,北京:清華大學(xué)出版社,2010ISBN:9787302231523參考文獻(xiàn):張志鋒、鄧璐娟、張建偉、宋勝利等.JSP程序設(shè)計(jì)與項(xiàng)目實(shí)訓(xùn)教程
.北京:清華大學(xué)出版社.2012張志鋒、馬軍等.Web框架技術(shù)(Struts2+Hibernate+Spring3)教程.北京:清華大學(xué)出版社.2013張志鋒申紅雪朱顥東丁曉劍等編著.Struts2+Hibernate框架技術(shù)教程.北京:電子工業(yè)出版社.20122參考網(wǎng)站源碼愛好者
/源碼網(wǎng)/software/index.html3Web技術(shù)——JSP章節(jié)簡介4第1章Web技術(shù)簡介第1章Web技術(shù)簡介1.1Web基礎(chǔ)知識
1.1.1Web技術(shù)的由來與發(fā)展
1.1.2Web動態(tài)網(wǎng)頁技術(shù)
1.1.3Web應(yīng)用程序的工作原理
1.1.4JavaWeb編程的主要組件技術(shù)
1.2JSP技術(shù)
1.2.1JSP特點(diǎn)與優(yōu)勢
1.2.2JSP的工作原理
51.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)
1.3.1JSP開發(fā)Web站點(diǎn)的主要方式
1.3.2JSP兩種體系結(jié)構(gòu) 1.4MVC設(shè)計(jì)模式
1.4.1MVC設(shè)計(jì)模式思想
1.4.2MVC優(yōu)缺點(diǎn)6第2章JSP開發(fā)運(yùn)行環(huán)境
2.1JSP環(huán)境介紹 2.2JDK安裝配置
2.2.1JDK簡介與下載
2.2.2JDK安裝與配置 2.3Netbeans開發(fā)環(huán)境
2.3.1NetBeans簡介與下載
2.3.2NetBeans安裝與使用
72.4Eclipse開發(fā)環(huán)境
2.4.1Eclipse簡介與下載
2.4.2Eclipse的使用
2.5MyEclipse開發(fā)環(huán)境
2.5.1MyEclipse簡介與下載
2.5.2MyEclipse安裝與使用 2.6Tomcat服務(wù)器
2.6.1Tomcat簡介與下載
2.6.2Tomcat安裝與配置8第3章腳本語言
3.1HTML 3.1.1HTML簡介
3.1.2HTML基本標(biāo)簽
3.1.3列表
3.1.4多媒體和超鏈接
3.1.5表格
3.1.6框架
3.1.7表單 93.2CSS 3.2.1CSS簡介
3.2.2CSS樣式表定義
3.2.3在HTML中加入CSS的方法
3.2.4CSS樣式表繼承性
3.2.5CSS基本屬性 3.3JavaScript腳本語言
3.3.1JavaScript簡介
3.3.2語言基礎(chǔ)知識
3.3.3JavaScript對象
3.3.4JavaScript事件10第4章基于腳本語言的項(xiàng)目實(shí)訓(xùn)4.1項(xiàng)目需求說明 4.2項(xiàng)目總體結(jié)構(gòu)與構(gòu)成 4.3項(xiàng)目頁面開發(fā)
4.3.1登錄頁面
4.3.2項(xiàng)目的框架頁面
4.3.3用戶管理模塊頁面
11第5章JSP基礎(chǔ)知識 5.1JSP的基本頁面結(jié)構(gòu) 5.2JSP中的腳本元素
5.2.1變量、方法的聲明
5.2.2表達(dá)式
5.2.3腳本 5.3JSP中的注釋
5.3.1隱藏注釋
5.3.2HTML注釋
5.3.3Java注釋 125.4JSP的指令
5.4.1page指令
5.4.2include指令
5.4.3taglib指令
5.5JSP中的常用動作
5.5.1<jsp:param>動作
5.5.2<jsp:include>動作
5.5.3<jsp:useBean>動作
5.5.4<jsp:setProperty>動作
5.5.5<jsp:getProperty>動作
5.5.6<jsp:forward>動作
5.5.7<jsp:plugin>動作13第6章JSP的內(nèi)置對象 6.1out對象
6.1.1out對象的方法
6.1.2out對象實(shí)例 6.2page對象
6.2.1page對象的方法
6.2.2page對象實(shí)例 6.3request對象
6.3.1request對象的方法
6.3.2request對象實(shí)例
6.4response對象
6.4.1response對象的方法
6.4.2response對象實(shí)例146.5session對象
6.5.1session對象的方法
6.5.2session對象實(shí)例 6.6pageContext對象
6.6.1pageContext對象的方法
6.6.2PageContext對象實(shí)例 6.7config對象
6.7.1config對象的方法
6.7.2config對象實(shí)例
6.8exception對象
6.8.1exception對象的方法
6.8.2exception對象實(shí)例 6.9application對象
6.9.1application對象的方法
6.9.2application對象實(shí)例15第7章JSP中數(shù)據(jù)庫操作
7.1JDBC介紹
7.1.1什么是JDBC 7.1.2JDBC的結(jié)構(gòu) 7.2通過JDBC-ODBC橋訪問數(shù)據(jù)庫
7.2.1通過橋訪問Access 7.2.2通過橋訪問Excel 7.3通過JDBC驅(qū)動訪問數(shù)據(jù)庫
7.3.1通過JDBC驅(qū)動使用MySQL數(shù)據(jù)庫
7.3.2通過JDBC驅(qū)動使用MicrosoftSQLServer數(shù)據(jù)庫
7.3.3通過JDBC驅(qū)動使用oracle數(shù)據(jù)庫167.4查詢數(shù)據(jù)庫 7.5更新數(shù)據(jù)庫
7.5.1更新的SQL語句
7.5.2JSP更新數(shù)據(jù)庫 7.6JSP在數(shù)據(jù)庫應(yīng)用中的相關(guān)問題
7.6.1JSP的分頁瀏覽
7.6.2漢字處理 7.7JSP中數(shù)據(jù)庫應(yīng)用實(shí)例
7.7.1學(xué)生信息系統(tǒng)主頁面設(shè)計(jì)
7.7.2學(xué)生信息查詢
7.7.3學(xué)生信息添加
7.7.4學(xué)生信息刪除
7.7.4學(xué)生信息修改17第8章個(gè)人信息管理系統(tǒng)實(shí)訓(xùn)8.1項(xiàng)目需求說明 8.2項(xiàng)目系統(tǒng)分析 8.3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
8.3.1數(shù)據(jù)庫設(shè)計(jì)
8.3.2項(xiàng)目代碼實(shí)現(xiàn)
登錄功能實(shí)現(xiàn)
主界面功能實(shí)現(xiàn)
個(gè)人信息管理功能實(shí)現(xiàn)
通訊錄管理功能實(shí)現(xiàn)
日程安排管理功能實(shí)現(xiàn)18第9章JSP與JavaBean編程 9.1JavaBean概述 9.2JavaBean的基本用法
9.2.1JavaBean的屬性
9.2.2訪問Bean屬性
9.2.3設(shè)置Bean屬性 9.3Bean的作用域 9.4JavaBean的使用
9.4.1使用JavaBean訪問數(shù)據(jù)庫
9.4.2JavaBean應(yīng)用實(shí)例 19第10章JSP與Servlet編程10.1Servlet介紹
10.1.1什么是Servlet 10.1.2Servlet的技術(shù)特點(diǎn)
10.1.3Servlet與JSP的區(qū)別
10.1.4Servlet在Web項(xiàng)目中的作用
10.1.5Servlet生命周期
10.1.6開發(fā)一個(gè)簡單的Servlet
10.2處理客戶端請求
10.2.1從Servlet讀取表單數(shù)據(jù)
10.2.2從Servlet提取報(bào)文頭
10.2.3處理Cookie與會話跟蹤 2010.3Servlet編程接口
10.3.1與Servlet實(shí)現(xiàn)相關(guān)的接口
10.3.2與Servlet配置相關(guān)的接口
10.3.3與Servlet異常相關(guān)的接口
10.3.4與請求和響應(yīng)相關(guān)的接口
10.3.5會話管理
10.3.6Servlet上下文相關(guān) 10.4Servlet部署 10.5Servlet應(yīng)用實(shí)例21第11章JSP標(biāo)記11.1創(chuàng)建自定義標(biāo)記表記庫
11.1.1組成標(biāo)記庫的組件
11.1.2為標(biāo)記分配屬性
11.1.3處理標(biāo)記正文 11.2常用JSTL的使用
11.2.1JSTL簡介
11.2.2表達(dá)式語言
11.2.3使用JSTL訪問數(shù)據(jù)庫22第12章基于MVC模式項(xiàng)目實(shí)訓(xùn)12.1MVC設(shè)計(jì)模式 12.2項(xiàng)目實(shí)訓(xùn)(一)
12.2.1項(xiàng)目設(shè)計(jì)
12.2.2項(xiàng)目實(shí)現(xiàn) 12.3項(xiàng)目實(shí)訓(xùn)(二)
12.3.1項(xiàng)目設(shè)計(jì)
12.3.2項(xiàng)目實(shí)現(xiàn)23Web技術(shù)講解第1章Web技術(shù)簡介24第1章Web技術(shù)簡介1.1Web基礎(chǔ)知識1.2JSP技術(shù)1.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)1.4MVC設(shè)計(jì)模式251.1Web基礎(chǔ)知識1.1.1Web技術(shù)的由來與發(fā)展 1.1.2Web動態(tài)網(wǎng)頁技術(shù) 1.1.3Web應(yīng)用程序的工作原理1.1.4JavaWeb編程的主要組件技術(shù)261.1.1Web技術(shù)的由來與發(fā)展1980年,TimBerners-Lee負(fù)責(zé)的Enquire(EnquireWithinUponEverything的簡稱)項(xiàng)目是Web項(xiàng)目的起源。1989年,TimBerners-Lee發(fā)明的分布式應(yīng)用架構(gòu),向人們提供信息和信息服務(wù)。
1990年,第一個(gè)Web服務(wù)器開始運(yùn)行。
1991年,CERN正式發(fā)布了Web技術(shù)標(biāo)準(zhǔn)。27早期的Web應(yīng)用主要是使用HTML語言編寫、運(yùn)行在服務(wù)器端的的靜態(tài)頁面。HTTP請求HTTP響應(yīng)客戶機(jī)瀏覽器服務(wù)器Web服務(wù)器靜態(tài)頁面網(wǎng)絡(luò)瀏覽器請求靜態(tài)頁面圖28HTMLHTML(HypertextMarkupLanguage,超文本標(biāo)記語言)是一種描述文檔結(jié)構(gòu)的語言,不能描述實(shí)際的表現(xiàn)形式。1945年,VannevarBush提出了文本和文本之間通過超級鏈接相互關(guān)聯(lián)的思想,并給出設(shè)計(jì)方案。1960年后正式將這種信息關(guān)聯(lián)技術(shù)命名為超文本(Hypertext)技術(shù)。1991年HTML語言正式誕生以來推出了多個(gè)不同的版本,其中對Web技術(shù)發(fā)展具有重大影響的主要是兩個(gè)版本:1996年推出的HTML3.2;1998年推出的HTML4.0。1999年W3C頒布了HTML4.01。29為了滿足人們對信息豐富性和多樣性的強(qiáng)烈需求。促使Web技術(shù)由靜態(tài)技術(shù)向動態(tài)技術(shù)的轉(zhuǎn)化。第一種使服務(wù)器能根據(jù)運(yùn)行時(shí)的具體情況,動態(tài)生成HTML頁面的技術(shù)是CGI(CommonGatewayInterface,公共網(wǎng)關(guān)接口)技術(shù)。1993年,CGI1.0的標(biāo)準(zhǔn)草案由NCSA(NationalCenterforSupercomputingApplications)提出,1995年,NCSA開始制定CGI1.1標(biāo)準(zhǔn)。CGI技術(shù)允許服務(wù)端的應(yīng)用程序根據(jù)客戶端的請求,動態(tài)生成HTML頁面,這使客戶端和服務(wù)端的動態(tài)信息交換成為了可能。動態(tài)網(wǎng)頁技術(shù)30
用戶訪問CGI程序
客戶機(jī)瀏覽器服務(wù)器Web服務(wù)器靜態(tài)頁面HTTP請求HTTP響應(yīng)網(wǎng)絡(luò)CGI程序數(shù)據(jù)庫311994年,RasmusLerdorf發(fā)明了專用于Web服務(wù)端編程的PHP(PersonalHomePageTools)語言。1996年,Microsoft借鑒PHP的思想,推出ASP技術(shù)。借助MicrosoftVisualStudio等開發(fā)工具在市場上的成功,ASP迅速成為了Windows系統(tǒng)下Web服務(wù)端的主流開發(fā)技術(shù)。1997年,SUN公司推出了Servlet技術(shù),作為Java陣營的CGI解決方案。(2009年Oracle公司收購了SUN)1998年,SUN公司又推出了JSP技術(shù),允許在HTML頁面中嵌入Java腳本代碼,從而實(shí)現(xiàn)動態(tài)網(wǎng)頁功能。322000年以后,整合Web開發(fā)技術(shù)形成完整的開發(fā)框架或應(yīng)用模型,來滿足各種復(fù)雜的應(yīng)用需求。MVCStrutsSpringHibernate331.1Web基礎(chǔ)知識1.1.1Web技術(shù)的由來與發(fā)展 1.1.2Web動態(tài)網(wǎng)頁技術(shù) 1.1.3Web應(yīng)用程序的工作原理1.1.4JavaWeb編程的主要組件技術(shù)341.1.2Web動態(tài)網(wǎng)頁技術(shù)動態(tài)網(wǎng)頁技術(shù)是運(yùn)行在服務(wù)器端的Web應(yīng)用,程序根據(jù)用戶的請求在服務(wù)器端進(jìn)行動態(tài)處理后,把處理的結(jié)果以HTML文件格式返回給客戶端。當(dāng)前主流的三大動態(tài)Web開發(fā)技術(shù)是:
JSPASP/ASP.NETPHP35PHPPHP(PHP:HypertextPreprocessor,超級文本預(yù)處理語言)是一個(gè)基于服務(wù)端來創(chuàng)建動態(tài)網(wǎng)站的腳本語言,可以用PHP和HTML生成網(wǎng)站主頁。當(dāng)一個(gè)訪問者打開主頁時(shí),服務(wù)端便執(zhí)行PHP的命令并將執(zhí)行結(jié)果發(fā)送至訪問者的瀏覽器中,這類似于ASP和JSP,然而PHP和它們不同之處在于PHP開放源碼和跨越平臺,PHP可以運(yùn)行在WINDOWSNT和多種版本的UNIX上。PHP消耗的資源較少,當(dāng)PHP作為ApacheWeb服務(wù)器一部分時(shí),運(yùn)行代碼不需要調(diào)用外部二進(jìn)制程序,服務(wù)器不需要承擔(dān)任何額外的負(fù)擔(dān)。361994年RasmusLerdorf創(chuàng)建了PHP。1995年初PersonalHomePageTools(PHPTools)發(fā)布了PHP1.01995年中,PHP2.0發(fā)布1997年發(fā)布PHP32000年,發(fā)布PHP4.02009年發(fā)布PHP5.3版本,其中增加了許多新的特性。2013年6月發(fā)布PHP5.5
37ASP/ASP.NETASP(ActiveServerPages,活動服務(wù)器頁面)是一種允許用戶將HTML或XML標(biāo)記與VBScript代碼或者JavaScript代碼相結(jié)合生成動態(tài)頁面的技術(shù),用來創(chuàng)建服務(wù)器端功能強(qiáng)大的Internet應(yīng)用程序。當(dāng)一個(gè)頁面被訪問時(shí),VBScript/JavaScript代碼首先被服務(wù)器處理,然后將處理后得到的HTML代碼發(fā)送給瀏覽器。ASP只能建立在Windows的IISWeb服務(wù)器上。381996年,Microsoft公司推出ASP1.01998年,Microsoft公司推出ASP2.01999年,Microsoft公司推出ASP3.02001年,推出ASP.NET。39ASP.NET技術(shù)又稱為ASP+,是在ASP基礎(chǔ)上發(fā)展起來的,其不僅僅只是一個(gè)有新界面并且修復(fù)了一些缺陷的ASP3.0升級版本,更為重要的是其是在保留ASP的最大優(yōu)點(diǎn)并全力使其擴(kuò)大化的基礎(chǔ)上開發(fā)出來的,它是Microsoft公司推出的新一代Web開發(fā)工具,是.NET戰(zhàn)略中的重要一員,它全新的技術(shù)架構(gòu)使編程變得更加簡單,是創(chuàng)建動態(tài)網(wǎng)站和Web應(yīng)用的最好技術(shù)之一。40JSPJSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。SUN公司JSP1998年推出JSP0.9版本1999年推出1.1版本2000年推出1.2版本現(xiàn)在流行的是JSP2.0版本。411.1Web基礎(chǔ)知識1.1.1Web技術(shù)的由來與發(fā)展 1.1.2Web動態(tài)網(wǎng)頁技術(shù) 1.1.3Web應(yīng)用程序的工作原理1.1.4JavaWeb編程的主要組件技術(shù)421.1.3Web應(yīng)用程序的工作原理JSP頁面是運(yùn)行在服務(wù)器端的一種Web應(yīng)用程序。在學(xué)習(xí)JSP技術(shù)前,先了解一下Web應(yīng)用程序的工作原理。目前在Internet上信息大多以網(wǎng)頁形式存儲在服務(wù)器上,通過瀏覽器獲取網(wǎng)頁內(nèi)容,這是一種典型的B/S(瀏覽器/服務(wù)器)模式。B/S模式的工作過程是:客戶端請求-服務(wù)器處理-對客戶端響應(yīng)。其實(shí)現(xiàn)的原理如圖1-3所示。43圖1-3B/S模式的工作原理客戶端瀏覽器服務(wù)器Web服務(wù)器Web應(yīng)用程序1Web應(yīng)用程序2…應(yīng)用服務(wù)器HTTP請求HTTP響應(yīng)網(wǎng)絡(luò)數(shù)據(jù)庫441.1Web基礎(chǔ)知識1.1.1Web技術(shù)的由來與發(fā)展 1.1.2Web動態(tài)網(wǎng)頁技術(shù) 1.1.3Web應(yīng)用程序的工作原理1.1.4JavaWeb編程的主要組件技術(shù)451.1.4JavaWeb編程的主要組件技術(shù)JavaWeb應(yīng)用程序通常是由多種組件構(gòu)成的:表示層組件、控制層組件和業(yè)務(wù)邏輯層組件及數(shù)據(jù)訪問層組件組成。表示層組件通常由HTML和JSP頁面構(gòu)建;控制層組件一般是Servlet。業(yè)務(wù)邏輯層組件是JavaBeans或EJB。數(shù)據(jù)訪問層組件是JDBC,Hibernate。46下面將分別介紹JavaBean、Servlet、JDBC、JavaEE、EJB等主要JavaWeb組件技術(shù)。47JavaBeanJavaBean是Java的可重用組件,是一種Java類,通過封裝屬性和方法成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對象。JavaBean開發(fā)起來簡單,許多動態(tài)頁面處理過程實(shí)際上被封裝到了JavaBean當(dāng)中,可以將大部分功能放在JavaBean中完成。JavaBean在JSP中用來捕獲頁面表單的輸入并封裝事務(wù)邏輯,從而很好地實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺程序的分離,使得系統(tǒng)更加健壯和靈活。48JavaBean定義應(yīng)遵循的規(guī)范:必須有一個(gè)無參的構(gòu)造函數(shù)。對在Bean中定義的所有屬性提供getter和setter方法,并且這些方法是公共的。對于boolean類型的屬性,其getter方法的形式為isXXX的,其中XXX為首字母大寫的屬性名。對于數(shù)組類型的屬性,要提供形式為getXXX(intindex)和setXXX(intindex,PropertyTypevalue)的方法。JavaBeans具有以下特性:可以實(shí)現(xiàn)代碼的重復(fù)使用。容易維護(hù)、容易使用且容易編寫??梢栽谥С諮ava的任何平臺上工作,而不需要重新編譯。可以以其它部件的模式進(jìn)行工作。49JavaBean實(shí)例:publicclassLogin{privateStringusername;privateStringpassword;publicLogin(){}publicStringgetUserName(){returnthis.username;}publicvoidsetUserName(Stringparam){this.username=param;}publicStringgetPassword(){returnthis.password;}publicvoidsetPassword(Stringparam){this.password=param;}}50ServletServlet是使用JavaServlet應(yīng)用程序設(shè)計(jì)接口(API)及相關(guān)類和方法的Java程序。Servlet是一種運(yùn)行在對支持Java的服務(wù)器中,能夠自動產(chǎn)生HTML網(wǎng)頁的Java技術(shù)。提供非常安全的、可移植的、易于使用的CGI替代品。它完全運(yùn)行在Java虛擬機(jī)上。Servlet在Java的Web服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展該服務(wù)器的能力。Servlet的主要功能在于可以事先交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。在JavaWeb應(yīng)用程序中,JSP頁面首先被編譯成Servlet文件,然后運(yùn)行,Servlet處理用戶的請求并做出反應(yīng);其次,在JavaWeb應(yīng)用程序中可以將Servlet作為控制器來使用。51
JDBCJDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。52JDBC提供的標(biāo)準(zhǔn)API幾乎是獨(dú)立于數(shù)據(jù)庫的,但同時(shí)又可以在必要時(shí)訪問數(shù)據(jù)庫的某些特性。JDBC3.0包括了兩個(gè)軟件包:java.sql和javax.sql。
java.sql:這個(gè)包中的類和接口主要針對基本的數(shù)據(jù)庫編程服務(wù),如生成連接、執(zhí)行語句,以及準(zhǔn)備語句和運(yùn)行批處理查詢等。同時(shí)也有一些高級的處理,比如批處理更新、事務(wù)隔離和可滾動結(jié)果集等。
javax.sql:它主要為數(shù)據(jù)庫方面的高級操作提供接口和類,例如為連接管理、分布式事務(wù)和舊有的連接提供了更好的抽象。它引入了容器管理的連接池和分布式事務(wù)等。JDBC的用途是與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果。53JDBCAPI的核心組件有:DriverManager類:用于跟蹤可用的JDBC驅(qū)動程序并生成數(shù)據(jù)庫連接。Connection接口:用于取得數(shù)據(jù)庫信息、生成數(shù)據(jù)庫語句,并管理數(shù)據(jù)庫事務(wù)。Statement接口:用于在基層連接上運(yùn)行SQL語句,并且生成一個(gè)結(jié)果集。Statement有兩個(gè)子接口:PreparedStatement和CallableStatement。PreparedStatement提供了可以與查詢信息一起預(yù)編譯的一種語句類型。CallableStatement從PreparedStatement繼承而來,它用來封裝數(shù)據(jù)庫中存儲過程的執(zhí)行。ResultSet接口:用于訪問SQL查詢返回的數(shù)據(jù)。當(dāng)讀取結(jié)果時(shí),可以使用它的next()方法依次定位每一行數(shù)據(jù),然后用相應(yīng)的get()方法讀取數(shù)據(jù)。JDBC通過數(shù)據(jù)庫的JDBC驅(qū)動程序來訪問數(shù)據(jù)庫。如圖1-3所示54Java小應(yīng)用程序/應(yīng)用程序JDBC(java.sql)數(shù)據(jù)庫的JDBC驅(qū)動程序DataBaseDataBase通過JDBC訪問數(shù)據(jù)庫55通常Java開發(fā)工具帶有JDBC-ODBC橋,只要可以通過ODBC驅(qū)動程序訪問數(shù)據(jù)庫,就可以使用JDBC訪問數(shù)據(jù)庫。如圖1-4所示。56Java小程序/應(yīng)用程序JDBC(java.sql)SQLServer驅(qū)動程序SQLServer數(shù)據(jù)庫Oracle數(shù)據(jù)庫Oracle驅(qū)動程序……JDBC-ODBC橋接器(翻譯器)通過JDBC-ODBC訪問數(shù)據(jù)庫57J2EEJ2EE(Java2PlatformEnterpriseEdition)平臺規(guī)范是SUN公司定義的用于簡化分布式企業(yè)級應(yīng)用開發(fā)與部署的基于組件的模式。為了降低成本,加快企業(yè)應(yīng)用程序的設(shè)計(jì)和開發(fā),J2EE平臺提供了一個(gè)基于組件的方法來設(shè)計(jì)、開發(fā)、裝配及部署企業(yè)應(yīng)用程序,并提供了多層的分布式的應(yīng)用模型、組件重用、一致化的安全模型以及靈活的事務(wù)控制。因此程序員可以更快的速度向市場推出創(chuàng)造性的客戶解決方案,并且獨(dú)立的、基于組件的J2EE解決方案不會被任何一個(gè)廠商的產(chǎn)品和API所束縛。58J2EE平臺由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對開發(fā)基于Web的多層應(yīng)用提供了功能支持。1998年,Sun發(fā)布了EJB1.0標(biāo)準(zhǔn)。至此,J2EE平臺的三大核心技術(shù)Servlet、JSP和EJB都已先后問世。1999年,Sun正式發(fā)布了J2EE的第一個(gè)版本。緊接著,遵循J2EE標(biāo)準(zhǔn),為企業(yè)級應(yīng)用提供支撐平臺的各類應(yīng)用服務(wù)軟件出來了。IBM的WebSphere、BEA的WebLogic都是這一領(lǐng)域里最為成功的商業(yè)軟件平臺。2003年,Sun的J2EE版本已經(jīng)升級到了1.4版,其中三個(gè)關(guān)鍵組件的版本也演進(jìn)到了Servlet2.4、JSP2.0和EJB2.1。2004年發(fā)布J2EE1.5版本。592005年6月,JavaOne大會召開,SUN公司公開JavaSE6。(Java2平臺包括標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微型版(J2ME)三個(gè)版本。)此時(shí),Java的各種版本已經(jīng)更名以取消其中的數(shù)字“2”:J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。2006年12月,SUN公司發(fā)布JRE6.02009年04月20日,甲骨文74億美元收購Sun。取得java的版權(quán)。2011年7月28日,甲骨文發(fā)布java7.0的正式版。60J2EE分為4個(gè)層:客戶層(ClientTier):應(yīng)用層運(yùn)行在客戶端機(jī)器上。Web層(WebTier):Web層運(yùn)行在Web服務(wù)器上。業(yè)務(wù)層(BusinessTier):業(yè)務(wù)層運(yùn)行在EJB服務(wù)器上。企業(yè)信息系統(tǒng)層(EIST):信息系統(tǒng)層運(yùn)行在EIS服務(wù)器上,該層運(yùn)行企業(yè)信息系統(tǒng)軟件。業(yè)務(wù)層和Web層一起構(gòu)建成為J2EE的中間層,而其他兩層是客戶層和信息系統(tǒng)層,通常稱J2EE為三層體系結(jié)構(gòu)。61JavaEEJavaEE是J2EE的一個(gè)新的名稱,之所以改名,目的是讓大家清楚J2EE只是Java企業(yè)應(yīng)用。隨著Web和EJB容器概念誕生,使得軟件應(yīng)用行業(yè)開始擔(dān)心SUN是否還在Java平臺上不斷推出翻新的標(biāo)準(zhǔn)框架。在2004年底中國軟件技術(shù)大會IoC微容器演講中指出:我們需要一個(gè)跨J2SE/WEB/EJB的微容器,保護(hù)我們的業(yè)務(wù)核心組件(中間件),以延續(xù)它的生命力,而不是依賴J2SE/J2EE版本。此次J2EE改名為JavaEE,實(shí)際也反映出業(yè)界這種共同心聲。62EJBEJB(EnterpriseJavaBean)是一個(gè)J2EE體系中的組件,是用于開發(fā)和部署多層結(jié)構(gòu)的、分布式的、面向?qū)ο蟮腏ava應(yīng)用系統(tǒng)的跨平臺的構(gòu)件體系結(jié)構(gòu)。采用EJB可以使得開發(fā)商業(yè)應(yīng)用系統(tǒng)變得容易,隨著需求的改變,應(yīng)用系統(tǒng)可以不加修改地遷移到其它功能更強(qiáng)、更復(fù)雜的服務(wù)器上。63EJB主要有2種組件:SessionBean和EntityBean。64第1章Web技術(shù)簡介1.1Web基礎(chǔ)知識1.2JSP技術(shù)1.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)1.4MVC設(shè)計(jì)模式651.2JSP技術(shù)1.2.1JSP特點(diǎn)與優(yōu)勢1.2.2JSP的工作原理661.2.1JSP特點(diǎn)與優(yōu)勢JSP(JavaServerPages)是由SUN公司倡導(dǎo)、許多公司共同參與建立的一種基于Java語言的動態(tài)Web應(yīng)用開發(fā)技術(shù),利用這一技術(shù)可以建立安全、跨平臺的先進(jìn)動態(tài)網(wǎng)頁。JSP技術(shù)是一種建立在Servlet規(guī)范提供的功能之上的動態(tài)網(wǎng)頁技術(shù),和ASP、PHP類似,它們都是在通常的網(wǎng)頁文件中嵌入腳本代碼,用于產(chǎn)生動態(tài)內(nèi)容,不過JSP文件中嵌入的是Java代碼和JSP標(biāo)記。JSP網(wǎng)頁(*.jsp)就是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm或*.html)中加入Java程序片段(Sriptlet)和JSP標(biāo)記(Tag)而構(gòu)成的。67JSP是J2EE系統(tǒng)中Web層技術(shù),負(fù)責(zé)動態(tài)生成用戶界面。JSP頁面在執(zhí)行時(shí)是編譯式,編譯成Servlet文件。JSP是SUN公司推出解決Web開發(fā)技術(shù)的解決方案,自JSP推出后,得到眾多大公司的支持,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。
68一次編寫、到處運(yùn)行系統(tǒng)的多臺平支持內(nèi)容和顯示分離生成可重用的組件采用標(biāo)簽簡化頁面健壯的存儲管理和安全性
JSP的技術(shù)特點(diǎn)和優(yōu)勢主要體現(xiàn):691.2JSP技術(shù)1.2.1JSP特點(diǎn)與優(yōu)勢1.2.2JSP的工作原理701.2.2JSP的工作原理JSP所有的程序都是在服務(wù)器端運(yùn)行的,服務(wù)器端收到用戶通過瀏覽器提交的請求,經(jīng)過一定處理后再以HTML的形式返回給客戶端,客戶端得到的只是在瀏覽器中看到的靜態(tài)網(wǎng)頁。服務(wù)器上的JSP程序負(fù)責(zé)處理客戶端的請求,其程序代碼對于客戶端來說是不可見的。71JSP和客戶端的交互是通過HTTP協(xié)議實(shí)現(xiàn)的,這個(gè)過程主要分為以下4個(gè)步驟:客戶端和服務(wù)器建立連接客戶端發(fā)送請求服務(wù)器發(fā)出響應(yīng)關(guān)閉連接72當(dāng)?shù)谝淮芜\(yùn)行一個(gè)JSP頁面時(shí),JSP引擎要完成以下操作:將JSP文件翻譯成Servlet文件,是Java應(yīng)用程序。JSP引擎調(diào)用Java編譯器,編譯Servlet文件得到可執(zhí)行的代碼文件。JSP引擎調(diào)用Java虛擬機(jī)解釋執(zhí)行class文件,并將運(yùn)行結(jié)果返回給服務(wù)器。服務(wù)器將運(yùn)行結(jié)果以HTML形式作為響應(yīng)返回給客戶端瀏覽器。
73圖JSP運(yùn)行機(jī)制74
Servlet是Java技術(shù)對CGI編程的其中一種語言。與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強(qiáng)大,具有更好的可移植性,更節(jié)省投資。
Servlet是一種運(yùn)行在服務(wù)器中,能夠自動產(chǎn)生HTML網(wǎng)頁的Java技術(shù)。Servlet是對支持Java的服務(wù)器的一般擴(kuò)充。它最常見的用途是擴(kuò)展Web服務(wù)器,提供非常安全的、可移植的、易于使用的CGI替代品。它是一種動態(tài)加載的模塊,為來自Web服務(wù)器的請求提供服務(wù)。它完全運(yùn)行在Java虛擬機(jī)上。由于它在服務(wù)器端運(yùn)行,因此它不依賴于瀏覽器的兼容性。JSP與Servlet的關(guān)系75Servlet可以被看作一個(gè)基于Java技術(shù)的Web組件,該組件由Servlet容器(Tomcat、Resin等服務(wù)器)管理,用于生成動態(tài)的Web信息。Servlet是平臺獨(dú)立的Java類,編寫一個(gè)Servlet,實(shí)際上就是按照Servlet規(guī)范編寫一個(gè)Java類。Servlet被編譯為平臺中立的字節(jié)碼,可以被動態(tài)的加載到Java技術(shù)的Web服務(wù)器中運(yùn)行。
JSP作為一種簡化Servlet開發(fā)的替代技術(shù)出現(xiàn),因此人們往往會形成一種誤解——JSP是一種比Servlet更加優(yōu)秀并可以完全替代Servlet的技術(shù)。首先必須承認(rèn),在實(shí)現(xiàn)頁面邏輯和表示的分離方面JSP確實(shí)比Servlet優(yōu)秀,另外,理論上JSP和Servlet也可以相互替代;但是隨著學(xué)習(xí)的深入以及在具體項(xiàng)目中應(yīng)用經(jīng)驗(yàn)的增加,會發(fā)現(xiàn)不能這樣簡單地比較兩種技術(shù),它們都有各自的優(yōu)勢和適應(yīng)性。JSP與Servlet的關(guān)系76JSP與Servlet之間的主要差異在于,JSP提供了一套簡單的標(biāo)簽,和HTML融合得比較好,即使不了解Servlet的用戶也可以通過JSP做出動態(tài)網(wǎng)頁來。因此,很多對Java語言不太熟悉的用戶,會覺得JSP開發(fā)比較方便。JSP頁面修改后可以立即看到效果,不需要手工編譯,JSP引擎會來做這些工作;而Servlet需要編譯,重新啟動Servlet引擎等一系列動作。JSP編寫簡單,可以方便地嵌入HTML中,很容易加入動態(tài)內(nèi)容,方便地輸出HTML。在Servlet中輸出HTML則需要調(diào)用特定的方法,相對于JSP比較復(fù)雜。從上面的比較可以看出,在表示層的實(shí)現(xiàn)上JSP相對于Servlet具有很大的優(yōu)勢。但是,如果要開發(fā)Web應(yīng)用有很復(fù)雜的控制邏輯需要實(shí)現(xiàn),這時(shí)使用Servlet則可以非常清晰和方便地封裝這些控制邏輯。事實(shí)上很多Web層應(yīng)用框架(如Struts框架)就是采用Servlet來實(shí)現(xiàn)控制邏輯的。JSP與Servlet的關(guān)系77第1章JSP概述1.1Web基礎(chǔ)知識1.2JSP技術(shù)1.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)1.4MVC設(shè)計(jì)模式781.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)1.3.1JSP開發(fā)Web站點(diǎn)的主要方式1.3.2JSP兩種體系結(jié)構(gòu)79JSP開發(fā)Web站點(diǎn)主要有以下幾種方式:直接使用JSPJSP+JavaBeanJSP+JavaBean+ServletJ2EE開發(fā)模型(MVC)SSH開發(fā)框架
(Struts+Spring+Hibernate)801.3JSP開發(fā)Web的方式與體系結(jié)構(gòu)1.3.1JSP開發(fā)Web站點(diǎn)的主要方式1.3.2JSP兩種體系結(jié)構(gòu)81JSPModel1在Model1體系中,如圖1-6所示,JSP頁面獨(dú)自響應(yīng)請求并將處理結(jié)果返回客戶。Model1體系十分適合簡單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實(shí)現(xiàn)。不加選擇地隨意運(yùn)用Model1,會導(dǎo)致JSP頁內(nèi)被嵌入大量的腳本片段或Java代碼,特別是當(dāng)需要處理的請求量很大時(shí),情況更為嚴(yán)重。盡管這對于Java程序員來說可能不是什么大問題,但如果JSP頁面是由網(wǎng)頁設(shè)計(jì)人員開發(fā)并維護(hù)的這就確實(shí)是個(gè)問題了。從根本上講,將導(dǎo)致角色定義不清和職責(zé)分配不明,給項(xiàng)目管理帶來不必要的麻煩。82Model1模型結(jié)構(gòu)圖BROWERJSPJavaBean13RequestResponse4ApplicationServerEnterpriseServers/DataSources283Model2Model2體系結(jié)構(gòu)是一種把JSP與servlet聯(lián)合使用來實(shí)現(xiàn)動態(tài)內(nèi)容服務(wù)的方法。它吸取了兩種技術(shù)各自的突出優(yōu)點(diǎn),用JSP生成表達(dá)層的內(nèi)容,讓servlet完成深層次的處理任務(wù)。在這里,servlet充當(dāng)控制者的角色,負(fù)責(zé)管理對請求的處理,創(chuàng)建JSP頁需要使用的Bean和對象,同時(shí)根據(jù)用戶的動作決定把哪個(gè)JSP頁傳給請求者。在JSP頁內(nèi)沒有處理邏輯;它僅負(fù)責(zé)檢索原先由servlet創(chuàng)建的對象或Bean,從servlet中提取動態(tài)內(nèi)容插入靜態(tài)模板。分離了表示和內(nèi)容,明確了角色的定義以及開發(fā)者與網(wǎng)頁設(shè)計(jì)者的分工。項(xiàng)目越復(fù)雜,使用Model2體系結(jié)構(gòu)的優(yōu)勢就越突出。84Model2模型結(jié)構(gòu)圖4BROWER(Controller)Servlet12RequestResponse3ApplicationServer(Model)JavaBean(View)JSP5EnterpriseServers/DataSources85第1章Web技術(shù)簡介1.1Web基礎(chǔ)知識1.2JSP技術(shù)1.3JSP開發(fā)Web的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市電氣安全事故事例及防范對策
- 部編人教版四年級下冊《道德與法治》全冊教學(xué)設(shè)計(jì)
- 資產(chǎn)增值秘訣投資理財(cái)?shù)闹腔叟c技巧
- 公司短期借款合同標(biāo)準(zhǔn)(17篇)
- 金融市場監(jiān)管與風(fēng)險(xiǎn)防控措施
- 跨境投資的稅收籌劃與風(fēng)險(xiǎn)管理
- 路口封堵合同范本
- 非營利組織的財(cái)務(wù)管理特色
- 跨區(qū)域協(xié)作在商業(yè)項(xiàng)目中的重要性
- 工程經(jīng)濟(jì)呂正輝呂正輝98課件
- 航空航天標(biāo)準(zhǔn)與認(rèn)證互認(rèn)
- 心理課教案自我認(rèn)知與情緒管理
- 車站信號自動控制課件:進(jìn)站信號機(jī)點(diǎn)燈電路
- 民用無人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題庫500題(含答案)
- GB/T 6553-2024嚴(yán)酷環(huán)境條件下使用的電氣絕緣材料評定耐電痕化和蝕損的試驗(yàn)方法
- 瀝青基材料在石油化工設(shè)備熱絕緣中的開發(fā)
- 中職旅游專業(yè)《中國旅游地理》說課稿
- 煤層底板采動破裂深度壓水
- 第15課 列強(qiáng)入侵與中國人民的反抗斗爭【課件】-中職高一上學(xué)期高教版
- 新人教小學(xué)數(shù)學(xué)六年級下冊《成數(shù)》示范課教學(xué)課件
- CAR-T細(xì)胞療法行業(yè)營銷策略方案
評論
0/150
提交評論