版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課題:第一章 Java Web概述【教學(xué)目標(biāo)】 掌握J(rèn)SP運(yùn)行環(huán)境的搭建,能進(jìn)行簡(jiǎn)單的JSP程序編寫(xiě)與運(yùn)行。【教學(xué)重點(diǎn)】Eclipse+Dreamweaver工具、項(xiàng)目的導(dǎo)入、導(dǎo)出、發(fā)布打包【教學(xué)難點(diǎn)】Eclipse+Dreamweaver工具、項(xiàng)目的導(dǎo)入、導(dǎo)出、發(fā)布打包【教學(xué)方法】講解、討論【教學(xué)地點(diǎn)】教學(xué)樓、綜合樓【課時(shí)安排】4課時(shí)【教學(xué)過(guò)程】1.1 配置JSP運(yùn)行環(huán)境1.1.1 任務(wù)描述與實(shí)現(xiàn)正確安裝Tomcat服務(wù)器,并顯示其歡迎頁(yè)面。如圖1-1所示。圖1- 1 使用Tomcat歡迎頁(yè)面實(shí)現(xiàn)過(guò)程: 1安裝JDK 安裝Tomcat服務(wù)器前首先安裝JDK(Java Development
2、Kit),其包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類(lèi)庫(kù)。目前,提供下載的最新版本為JDK7。讀者可到官方網(wǎng)站下載,下載地址為下載后雙擊安裝,畫(huà)面如圖1-2所示,按“下一步”操作直到完成。 圖1- 2 JDK安裝界面2安裝Tomcat Tomcat官方網(wǎng)站下載地址:。本書(shū)采用的版本是Tomcat-7.0.20。下載后,雙擊安裝,如圖1-3所示。點(diǎn)擊Next到第一步,進(jìn)行安裝組件選擇,如圖1-4所示。第二步選擇路徑,按照系統(tǒng)默認(rèn)路徑即可。第三步為配置Tomcat端口信息和賬號(hào)信息,如圖1-5所示,按照實(shí)際配置即可。第四步為選擇JDK的安裝
3、路徑,如圖1-6所示,選擇在之前第1步操作中安裝的JDK所在的位置。之后單擊“Next”開(kāi)始安裝。安裝完畢后,提示安裝完成,如圖1-7所示。單擊“Finish”完成Tomcat的安裝。安裝完成之后,在程序菜單中可以看到Tomcat的選項(xiàng),如圖1-8所示。點(diǎn)擊Monitor Tomcat,可在任務(wù)欄看到Tomcat的服務(wù)圖標(biāo),如圖1-9所示,雙擊該圖標(biāo),彈出如圖1-10所示的Tomcat啟動(dòng)界面,在此界面中可以選擇啟動(dòng)或停止Tomcat服務(wù)。啟動(dòng)Tomcat后,在地址欄中輸入http:/localhost:8080,若出現(xiàn)圖1-1的顯示效果,則Tomcat已正常安裝并運(yùn)行。圖1-3 Tomcat
4、安裝:歡迎界面1.1.2 新知識(shí)點(diǎn)JSP概述、Tomcat目錄結(jié)構(gòu)、虛擬目錄配置 JSP概述1. 動(dòng)態(tài)網(wǎng)頁(yè)動(dòng)態(tài)網(wǎng)頁(yè)是在服務(wù)器運(yùn)行的程序或者網(wǎng)頁(yè),它們會(huì)隨不同用戶、不同時(shí)間、不同需求,返回不同的內(nèi)容。如:當(dāng)?shù)卿浀秸搲瘯r(shí),作為論壇管理員身份,就可以看到“刪除”、“修改”等操作;作為論壇普通用戶身份,則只能看到帖子的瀏覽頁(yè)面。動(dòng)態(tài)網(wǎng)頁(yè)會(huì)使用服務(wù)器端腳本語(yǔ)言,比如目前流行的JSP等,訪問(wèn)動(dòng)態(tài)網(wǎng)頁(yè)時(shí)會(huì)獲取最新內(nèi)容顯示,這就是為什么不同時(shí)間訪問(wèn)網(wǎng)頁(yè)顯示內(nèi)容會(huì)發(fā)生變化的原因。動(dòng)態(tài)網(wǎng)頁(yè)的特點(diǎn): 交互性好:即網(wǎng)頁(yè)會(huì)根據(jù)用戶需求和選擇而動(dòng)態(tài)改變和響應(yīng)。例如用戶在網(wǎng)頁(yè)中填寫(xiě)表單信息并提交,服務(wù)器經(jīng)過(guò)處
5、理將信息自動(dòng)存儲(chǔ)到后臺(tái)數(shù)據(jù)庫(kù)中,并轉(zhuǎn)到相應(yīng)提示頁(yè)面。因此,采用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的網(wǎng)站可以實(shí)現(xiàn)與用戶的交互功能,如用戶注冊(cè)、用戶登錄、信息查詢等。自動(dòng)更新:對(duì)于網(wǎng)頁(yè)設(shè)計(jì)者來(lái)說(shuō),無(wú)需每次修改頁(yè)面內(nèi)容,只需在后臺(tái)添加或者刪除要顯示的信息即可。例如,在論壇發(fā)布信息,后臺(tái)服務(wù)器將自動(dòng)生成新的網(wǎng)頁(yè)內(nèi)容。2B/S技術(shù)使用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)開(kāi)發(fā)網(wǎng)站實(shí)際上是B/S技術(shù)的一種應(yīng)用,因此,要更好地理解動(dòng)態(tài)網(wǎng)頁(yè)的開(kāi)發(fā)原理,首先需要了解B/S技術(shù)的一些基本概念。B/S技術(shù)跟C/S技術(shù)的區(qū)別: C/S(客戶機(jī)/服務(wù)器)結(jié)構(gòu)分為客戶機(jī)和服務(wù)器兩層,一般將應(yīng)用軟件安裝在客戶機(jī)端,通過(guò)網(wǎng)絡(luò)與服務(wù)器相互通信,實(shí)現(xiàn)交互,如QQ、飛信、MSN
6、等軟件。對(duì)于這類(lèi)系統(tǒng)的結(jié)構(gòu)如圖1-11所示。對(duì)于C/S結(jié)構(gòu)的應(yīng)用軟件,若要在客戶機(jī)運(yùn)行,就必須在先安裝,而且每次對(duì)系統(tǒng)做了微小的改動(dòng),所有客戶機(jī)的應(yīng)用軟件都需要更新。3. JSP簡(jiǎn)介(1) 什么是JSP JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先對(duì)其中的Java代碼進(jìn)行處理,然后將執(zhí)行結(jié)果連同JSP文件中
7、的HTML代碼一起返回給客戶的瀏覽器。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。 4JSP的特點(diǎn)JSP最大的優(yōu)點(diǎn)是開(kāi)發(fā)的跨平臺(tái)結(jié)構(gòu),它可以運(yùn)行在幾乎所有的操作系統(tǒng)平臺(tái)。JSP的優(yōu)勢(shì): 一次編寫(xiě),到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見(jiàn)的。強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)
8、處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。JSP的劣勢(shì): 與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤(pán)空間來(lái)儲(chǔ)存一系列的.java文件和.class文件以及對(duì)應(yīng)的版本文件。5
9、. JSP開(kāi)發(fā)及運(yùn)行環(huán)境要求 操作系統(tǒng)要求操作系統(tǒng)可以選擇Windows操作系統(tǒng)、Unix操作系統(tǒng)和Linux操作系統(tǒng)等。軟件環(huán)境要求 集成開(kāi)發(fā)工具:集成開(kāi)發(fā)工具有NetBeans、Eclipse等。本書(shū)選用Eclipse。Web服務(wù)器:JSP運(yùn)行時(shí)需要安裝JDK和Web服務(wù)器,目前使用較多的Web服務(wù)器有Tomcat、WebLogic、Jboss和Resin等。本書(shū)選用Tomcat。Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。本書(shū)選用目前最新版本
10、Tomcat7.0。 虛擬目錄配置配置JavaWebExample的虛擬目錄,方法如下: 1前期準(zhǔn)備工作 在D盤(pán)建立D:WorkSpaceJavaWebExample的文件夾(也可以建立在其他磁盤(pán))。 在JavaWebExample文件夾中新建index.html文件,輸入“歡迎”二字。2. 配置Tomcat虛擬目錄 打開(kāi)Tomcat的安裝目錄下conf文件夾的server.xml文件。在和標(biāo)簽之間加上虛擬目錄配置標(biāo)簽,即,其中path屬性值為虛擬目錄名稱,docBase屬性值為虛擬目錄指向的物理目錄。修改后如圖1-16所示。這里path保存的值是你在瀏覽器中輸入的值即虛擬目錄,
11、docBase保存的值是你要訪問(wèn)的文件的物理絕對(duì)路徑。1.2 利用開(kāi)發(fā)工具制作Hello.jsp 1.2.1 任務(wù)描述與實(shí)現(xiàn)任務(wù)描述: 利用Dreamweaver、Eclipse搭配開(kāi)發(fā)一個(gè)簡(jiǎn)單的JSP網(wǎng)頁(yè)。開(kāi)發(fā)過(guò)程采用Eclipse和Dreamweaver搭配開(kāi)發(fā),設(shè)計(jì)顯示界面部分用Dreamweaver實(shí)現(xiàn),代碼在界面制作自動(dòng)生成基礎(chǔ)上在Eclipse中編寫(xiě),最后在Eclipse中測(cè)試運(yùn)行實(shí)現(xiàn)過(guò)程: 1下載安裝Eclipse 到Eclipse的官方網(wǎng)站下載Eclipse IDE for Java EE Developers,下載后解壓即可使用。Eclipse官方網(wǎng)站http:/www.ec
12、。2下載并安裝DreamWeaver8 3配置Eclipse開(kāi)發(fā)環(huán)境啟動(dòng)后,配置Web項(xiàng)目測(cè)試服務(wù)器。打開(kāi)WindowPreferences菜單,選擇ServerRuntime Environments選項(xiàng),然后選擇添加服務(wù)器,添加已經(jīng)安裝的Tomcat v7.0。4在Eclipse中創(chuàng)建JavaWebExample項(xiàng)目在新建項(xiàng)目選擇對(duì)話框,選擇Dynamics Web Project,如圖1-24所示。單擊“Next”按鈕后,出現(xiàn)如圖1-25所示的對(duì)話框,填寫(xiě)項(xiàng)目名稱JavaWebExample,選擇與項(xiàng)目相關(guān)的信息。在本例中,項(xiàng)目文件都置于D:workspace Java
13、WebExample中,因此以默認(rèn)選項(xiàng)配置;測(cè)試用服務(wù)器選擇Tomcat7.0,其它部分按默認(rèn)配置,之后單擊“Finish”按鈕。5在Dreamweaver中創(chuàng)建JavaWebExample站點(diǎn)在Dreamweaver中創(chuàng)建站點(diǎn)時(shí),其站點(diǎn)根目錄指向在Eclipse中創(chuàng)建的項(xiàng)目的WebContent目錄,本例的根目錄為D:workspace JavaWebExampleWebContent,如圖1-29所示。此外,設(shè)置站點(diǎn)為JSP站點(diǎn),并指定前綴。6測(cè)試。測(cè)試在Dreamweaver中編寫(xiě)的Web頁(yè)面,在Eclipse中運(yùn)行。本例中為了方便演示,在Dreamweaver的JavaWebExamp
14、le站點(diǎn)的Chapter1文件夾創(chuàng)建一個(gè)簡(jiǎn)單的JSP頁(yè)面exam1_1_Hello.jsp1.2.2 新知識(shí)點(diǎn)Eclipse、Dreamweaver工具簡(jiǎn)介 Eclipse簡(jiǎn)介Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE),最初主要用于Java語(yǔ)言開(kāi)發(fā),目前也有人通過(guò)插件使其作為其他計(jì)算機(jī)語(yǔ)言(如C+和Python)的開(kāi)發(fā)工具。雖然Eclipse本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE。Eclipse就其本身而言,它只是一個(gè)框架和一組服務(wù),但可通過(guò)插件
15、組件構(gòu)建集成開(kāi)發(fā)環(huán)境。Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(Java Development Tools,JDT)。Eclipse最初是由IBM公司開(kāi)發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE Eclipse,2001年11月貢獻(xiàn)給開(kāi)源社區(qū),現(xiàn)在它由非盈利軟件供應(yīng)商聯(lián)盟Eclipse基金會(huì)(Eclipse Foundation)管理。 Dreamweaver簡(jiǎn)介 Dreamweaver,簡(jiǎn)稱DW,是一款有著多年歷史和良好口碑的可視化網(wǎng)頁(yè)編輯工具,它最大的優(yōu)點(diǎn)就是所見(jiàn)即所得,對(duì)W3C網(wǎng)頁(yè)標(biāo)準(zhǔn)化支持十分到位。同時(shí)它還支持網(wǎng)站管理,包含H
16、TML檢查、HTML格式控制、HTML格式化選項(xiàng)、HomeSite/BBEdit捆綁、圖像編輯、全局查找替換、全FTP功能、處理Flash和Shockwave等多媒體格式和動(dòng)態(tài)HTML,以及支持ASP、JSP、PHP、ASP.NET、XML等程序語(yǔ)言的編寫(xiě)與調(diào)試。 工具聯(lián)合開(kāi)發(fā)調(diào)試項(xiàng)目 使用Eclipse開(kāi)發(fā)程序時(shí),雖然系統(tǒng)框架結(jié)構(gòu)會(huì)給你帶來(lái)方便,但并不太適合于開(kāi)發(fā)Web顯示界面,而Dreamweaver開(kāi)發(fā)Web頁(yè)面時(shí)可以實(shí)現(xiàn)所見(jiàn)即所得的效果,頁(yè)面也遵循W3C國(guó)際標(biāo)準(zhǔn)。因此,可以利用這些開(kāi)發(fā)工具各自的優(yōu)點(diǎn),結(jié)合開(kāi)發(fā)Web程序,從而提高開(kāi)發(fā)效率。1.2.3 擴(kuò)展現(xiàn)有項(xiàng)目導(dǎo)入、導(dǎo)出
17、、發(fā)布打包對(duì)于程序員來(lái)說(shuō),有時(shí)需要將現(xiàn)有項(xiàng)目導(dǎo)入、導(dǎo)出和發(fā)布打包,下面介紹如何將項(xiàng)目導(dǎo)入、導(dǎo)出和發(fā)布打包。 項(xiàng)目導(dǎo)入 項(xiàng)目導(dǎo)入可直接將文件拷貝至相應(yīng)文件夾中,也可導(dǎo)入War文件。下面先來(lái)介紹第一種方法。1. 文件拷貝(1) 新建項(xiàng)目在Eclipse中新建project,參考1.2.2中介紹新建項(xiàng)目。新建項(xiàng)目test,此時(shí)src及WebContent均為空,【教學(xué)小結(jié)】 本章介紹了進(jìn)行Java Web應(yīng)用開(kāi)發(fā)的特點(diǎn),B/S架構(gòu)的優(yōu)勢(shì),介紹了Java Web程序的服務(wù)器運(yùn)行的安裝配置及開(kāi)發(fā)工具的搭配使用,重點(diǎn)介紹了JDK、Tomcat的安裝與配置,以及利用DreamWeaver與Ec
18、lipse搭配開(kāi)發(fā)項(xiàng)目。通過(guò)本章的學(xué)習(xí),讀者可以創(chuàng)建簡(jiǎn)單的JSP文件,并且進(jìn)行測(cè)試。課題:第二章 JSP語(yǔ)法【教學(xué)目標(biāo)】 掌握J(rèn)SP的頁(yè)面組成,掌握J(rèn)SP簡(jiǎn)單網(wǎng)站的制作【教學(xué)重點(diǎn)】page指令、include指令、tablib指令、動(dòng)作指令、動(dòng)作指令【教學(xué)難點(diǎn)】page指令、include指令、tablib指令、動(dòng)作指令、動(dòng)作指令【教學(xué)方法】講解、討論【教學(xué)地點(diǎn)】教學(xué)樓、綜合樓【課時(shí)安排】4課時(shí)【教學(xué)過(guò)程】2.1 制作第一個(gè)JSP頁(yè)面2.1.1 任務(wù)描述與實(shí)現(xiàn)在Jsp文件中定義方法實(shí)現(xiàn)兩個(gè)數(shù)的加法定義方法實(shí)現(xiàn)兩個(gè)數(shù)的加法,調(diào)用其計(jì)算1+2并顯示結(jié)果,如圖2-1所示。圖2-1 求和效果實(shí)現(xiàn)過(guò)程:
19、 1新建JSP文件。在項(xiàng)目的chapter2文件夾中,單擊右鍵選擇NewJSP File選項(xiàng),彈出如圖2-2所示的對(duì)話框,在File name中輸入exam2_1_sum.jsp,單擊Finish之后進(jìn)入JSP頁(yè)面編輯窗口,輸入代碼如程序2-1。2.1.2 新知識(shí)點(diǎn)JSP頁(yè)面組成、聲明、代碼段、表達(dá)式、注釋JSP頁(yè)面由兩部分組成,一部分為靜態(tài)部分,即HTML標(biāo)記,用來(lái)完成數(shù)據(jù)頁(yè)面顯示;另一部分為動(dòng)態(tài)部分,用來(lái)完成數(shù)據(jù)處理,包括腳本元素、指令元素和動(dòng)作元素。腳本元素用來(lái)嵌入Java代碼,這些Java代碼將成為轉(zhuǎn)換得到的Servlet的一部分;JSP指令元素用來(lái)從整體上控制Servlet的結(jié)構(gòu);動(dòng)
20、作元素用來(lái)引入現(xiàn)有的組件或者控制JSP引擎的行為。 聲明 JSP中聲明部分可以進(jìn)行變量、方法和類(lèi)的聲明,其一般在標(biāo)簽中進(jìn)行。其語(yǔ)法格式為。如在程序2-1中,進(jìn)行了求和方法的聲明。下邊進(jìn)行一個(gè)變量的聲明,如程序2-2。 代碼段 在JSP頁(yè)面中嵌入Java代碼來(lái)執(zhí)行特定的功能,其放置在標(biāo)記中。格式為: 這種Java代碼在Web服務(wù)器響應(yīng)請(qǐng)求時(shí)就會(huì)運(yùn)行。如程序2-3,定義2個(gè)變量并輸出。 表達(dá)式 JSP表達(dá)式可以把JSP頁(yè)面中的數(shù)據(jù)直接輸出到頁(yè)面,其格式為: 表達(dá)式一次只能使用一個(gè)表達(dá)式,并且該表達(dá)式是完整的。在表達(dá)式的語(yǔ)句中不能使用分號(hào)。如程序2-4,進(jìn)行
21、了變量輸出這種代碼段的主要功能是輸出一個(gè)變量或常量,有時(shí)候?qū)⑵浣凶霰磉_(dá)式輸出。使用方法見(jiàn)程序2-5所示。 注釋在JSP中支持兩種注釋,一種是顯式注釋,這種注釋客戶端允許查看的;另一種是隱式注釋,這種注釋客戶端是看不到的。1. 顯式注釋語(yǔ)法(HTML注釋) !- 這是顯式注釋 2. 隱式注釋語(yǔ)法(1) / Java提供的單行注釋 (2) /* Java提供的多行注釋 */ (3) 2.1.3 擴(kuò)展代碼編寫(xiě)規(guī)范好的代碼應(yīng)該容易理解,并且見(jiàn)名知意的,因此大家都需要遵守一些約定,下面介紹一些常規(guī)的編寫(xiě)規(guī)范。1JSP文件命名JSP文件名稱要以小寫(xiě)字母命名,名稱要體現(xiàn)出該頁(yè)面的意義,最好能夠
22、與模塊名稱聯(lián)系在一起。例如: login.jsp -登錄頁(yè)面register.jsp -注冊(cè)頁(yè)面message.jsp -消息頁(yè)面2Java Web項(xiàng)目文件夾組織規(guī)范Java Web項(xiàng)目的目錄結(jié)構(gòu)為: src -存放java源文件的文件夾WebContent - web站點(diǎn)文件存放文件夾|-images -圖片文件夾|-css -樣式文件夾|-js - js文件夾|- -其他功能模塊文件夾(存放與某個(gè)功能模塊相關(guān)的資源) |-WEB-INF -網(wǎng)站配置及類(lèi)和庫(kù)文件夾|-classes - 存放類(lèi)編譯后的字節(jié)碼文件的文件夾|-lib - 存放jar文件的文件夾2.2 制作一個(gè)帶包含文件的JSP頁(yè)
23、面2.2.1 任務(wù)描述與實(shí)現(xiàn)實(shí)現(xiàn)靜態(tài)包含功能,編寫(xiě)三個(gè)不同類(lèi)型的文件,然后將這三個(gè)不同類(lèi)型的文件靜態(tài)包含于某一JSP文件中2.2.2 新知識(shí)點(diǎn)JSP指令:page指令、include指令JSP指令是為JSP引擎而設(shè)計(jì)的。它們并不直接產(chǎn)生任何可見(jiàn)的輸出,而只是告訴引擎如何處理其余的JSP頁(yè)面。JSP指令有三種,分別為頁(yè)面設(shè)置指令page、頁(yè)面包含指令include和標(biāo)記指令taglib。JSP指令一般語(yǔ)法形式為: 1page指令page指令就是通過(guò)設(shè)置內(nèi)部的多個(gè)屬性來(lái)定義JSP文件中的全局特性。需要注意的是,page指令只能對(duì)當(dāng)前自身頁(yè)面進(jìn)行設(shè)置,即每個(gè)頁(yè)面都有自身的page指令。如果沒(méi)有對(duì)屬性
24、進(jìn)行設(shè)置,JSP將使用默認(rèn)指令屬性值。2include指令在JSP開(kāi)發(fā)中,可以將一些重用的代碼寫(xiě)入一個(gè)單獨(dú)的文件中,然后通過(guò)include指令引用該文件,從而緩解代碼的冗余問(wèn)題,修改也比較方便。Include指令語(yǔ)法格式為: inlcude也被稱為靜態(tài)包含指令,包含的文件可以是JSP文件、HTML文件、文本文件和Java程序段。靜態(tài)包含指令只是簡(jiǎn)單的將內(nèi)容合在一起顯示,所以,在一個(gè)完整的頁(yè)面中,對(duì)于、等元素只能出現(xiàn)一次,如果重復(fù)出現(xiàn),則會(huì)造成HTML錯(cuò)誤。在2.2.1節(jié)任務(wù)中,其主要采用include指令完成不同類(lèi)型文件的包含。2.2.3 擴(kuò)展taglib指令的使用使用指令在JSP文件中導(dǎo)入標(biāo)
25、簽,以便在JSP中使用標(biāo)簽方便地完成一些動(dòng)作。Taglib指令的語(yǔ)法為: uri是一個(gè)URI標(biāo)識(shí)標(biāo)記庫(kù)描述器。一個(gè)標(biāo)記庫(kù)描述器用來(lái)唯一的命名一組定制的標(biāo)記,并且告訴包容器如何處理特殊的標(biāo)記。Prefix定義一個(gè)prefix:tagname形式的字符串前綴,用于定義定制的標(biāo)記。2.3 制作一個(gè)簡(jiǎn)單的JSP網(wǎng)站2.3.1 任務(wù)描述與實(shí)現(xiàn) 制作一個(gè)簡(jiǎn)單的JSP網(wǎng)站制作一個(gè)簡(jiǎn)單的JSP網(wǎng)站。網(wǎng)站主題為產(chǎn)品網(wǎng)站,主要包括網(wǎng)站首頁(yè)、產(chǎn)品和下載頁(yè)面等,效果如圖2-102-12所示。要求公共部分采用單獨(dú)文件,并被包含。開(kāi)發(fā)過(guò)程采用Eclipse和Dreamweaver搭配開(kāi)發(fā),設(shè)計(jì)顯示界面部分全
26、部用Dreamweaver實(shí)現(xiàn),JSP程序部分在Eclipse中編寫(xiě),最后在Eclipse中測(cè)試運(yùn)行。2.3.2 新知識(shí)點(diǎn)JSP動(dòng)作指令、在JSP中,還存在另外一類(lèi)標(biāo)記,其符合XML的語(yǔ)法格式。利用這些標(biāo)記可以達(dá)到控制Servlet引擎的作用,如動(dòng)態(tài)的插入文件,調(diào)用JavaBean,頁(yè)面重定向等,這類(lèi)標(biāo)記稱為JSP動(dòng)作標(biāo)記。JSP的常用動(dòng)作標(biāo)記有、等。2.3.3 擴(kuò)展的使用動(dòng)作指令表示把當(dāng)前的頁(yè)面控制權(quán)轉(zhuǎn)向另外一個(gè)對(duì)象,該對(duì)象可以是一個(gè)HTML文件、JSP文件或者一個(gè)Servlet文件。的語(yǔ)法格式: jsp:forward page=”轉(zhuǎn)向的文件路徑|”/ 或者jsp:forward page
27、=”轉(zhuǎn)向的文件路徑|” 在上述格式中,page屬性為一個(gè)字符串或者一個(gè)表達(dá)式,用來(lái)表示轉(zhuǎn)向文件的路徑;字句指令為傳遞參數(shù),name指定參數(shù)名,value指定參數(shù)值?!窘虒W(xué)小結(jié)】 本章主要介紹了JSP頁(yè)面的組成、指令、動(dòng)作等技術(shù),重點(diǎn)介紹了JSP的page指令、include指令的使用,、等動(dòng)作指令的使用。通過(guò)本章的學(xué)習(xí),讀者可以建立一個(gè)簡(jiǎn)單功能的JSP網(wǎng)站。課題:第三章 JSP內(nèi)置對(duì)象【教學(xué)目標(biāo)】掌握J(rèn)SP常用內(nèi)置對(duì)象及使用方法【教學(xué)重點(diǎn)】JSP內(nèi)置對(duì)象【教學(xué)難點(diǎn)】JSP內(nèi)置對(duì)象【教學(xué)方法】講解【教學(xué)地點(diǎn)】教學(xué)樓、綜合樓【課時(shí)安排】4課時(shí)【教學(xué)過(guò)程】3.1獲取客戶端數(shù)據(jù)3.1.1 任務(wù)描述與實(shí)
28、現(xiàn) 實(shí)現(xiàn)用戶注冊(cè)信息獲取及顯示編寫(xiě)用戶注冊(cè)功能,注冊(cè)信息包括用戶名、密碼、性別、E-mail、熟練開(kāi)發(fā)語(yǔ)言,如圖3-1所示,提交后,顯示用戶輸入的數(shù)據(jù)。為了提高開(kāi)發(fā)效率,開(kāi)發(fā)過(guò)程采用Eclipse和Dreamweaver搭配開(kāi)發(fā),設(shè)計(jì)顯示界面部分全部用Dreamweaver實(shí)現(xiàn),代碼在界面制作自動(dòng)生成基礎(chǔ)上在Eclipse中編寫(xiě),最后在Eclipse中測(cè)試運(yùn)行。3.1.2 新知識(shí)點(diǎn)JSP內(nèi)置對(duì)象、request JSP內(nèi)置對(duì)象概述為了簡(jiǎn)化Web頁(yè)面的開(kāi)發(fā)過(guò)程,JSP提供了一些由容器實(shí)現(xiàn)和管理的對(duì)象,這些對(duì)象在JSP中可以直接使用,不需要JSP頁(yè)面編寫(xiě)進(jìn)行實(shí)例化,可
29、以直接使用,此類(lèi)對(duì)象稱之為JSP的內(nèi)置對(duì)象。JSP中規(guī)范定義了9個(gè)內(nèi)置對(duì)象,分別是request、response、session、application、out、page、pageContext和exception。其說(shuō)明見(jiàn)表3-1。表3- 1 JSP內(nèi)置對(duì)象對(duì)象 所屬類(lèi) 說(shuō)明 request javax.servlet.http.HttpServletRequest 封裝了客戶端的請(qǐng)求信息response javax.servlet.http.HttpServletResponse包含了響應(yīng)客戶請(qǐng)求的相關(guān)信息session javax.servlet.http.HttpSession 與當(dāng)
30、前請(qǐng)求相關(guān)的會(huì)話application javax.servlet.ServletContext 存放全局變量,實(shí)現(xiàn)用戶間的數(shù)據(jù)共享out javax.servlet.jsp.JspWriter 向客戶端輸出數(shù)據(jù)的對(duì)象page java.lang.Object 指當(dāng)前JSP頁(yè)面本身,作用類(lèi)似于this pageContext javax.servlet.jsp.PageContext 提供了對(duì)JSP頁(yè)面內(nèi)所有的對(duì)象及名字空間的訪問(wèn)config javax.servlet.servletConfig Servlet初始化時(shí),向其傳遞配置參數(shù)的對(duì)象exception java.lang.Throw
31、able 頁(yè)面運(yùn)行中發(fā)生異常而產(chǎn)生的對(duì)象3.1.3 擴(kuò)展中文亂碼處理、request中其他信息獲取 獲取顯示含有中文的信息客戶端提交數(shù)據(jù)當(dāng)含有中文時(shí),JSP不能正常顯示。如將節(jié)的表單增加個(gè)人簡(jiǎn)介后,程序?yàn)閑xam3_1_reg_2.jsp,此處略,運(yùn)行效果如圖3-6,其提交后顯示會(huì)是亂碼,如圖3-7所示。因此,要對(duì)含有中文的表單數(shù)據(jù),要進(jìn)行編碼設(shè)置。其主要方法為在獲取程序中設(shè)置字符集,使request其字符集與頁(yè)面字符集保持一致。 獲得客戶端請(qǐng)求的相關(guān)信息HttpServletRequest包含很多可以獲取與當(dāng)前請(qǐng)求相關(guān)信息的方法,具體可查看API文檔
32、,下面的例子將展示其中一部分方法的使用,exam3_1_request.jsp是提交請(qǐng)求的頁(yè)面,exam3_1_showInfo.jsp是處理請(qǐng)求的頁(yè)面,在此頁(yè)面中將調(diào)用request對(duì)象的各種方法,以獲取與當(dāng)前請(qǐng)求相關(guān)的一些信息。3.2 處理服務(wù)器響應(yīng)3.2.1 任務(wù)描述與實(shí)現(xiàn) 實(shí)現(xiàn)四則運(yùn)算測(cè)試功能針對(duì)剛學(xué)會(huì)整數(shù)四則運(yùn)算的小學(xué)生,開(kāi)發(fā)一個(gè)測(cè)試網(wǎng)站。要求在測(cè)試頁(yè)面中能隨機(jī)產(chǎn)生一個(gè)四則運(yùn)算式,當(dāng)用戶在userAnswer表單域內(nèi)填寫(xiě)答案并提交后,獲取用戶所填的答案,判斷答案的對(duì)錯(cuò)后,如果錯(cuò)誤則進(jìn)入錯(cuò)誤提示頁(yè)面;如果正確則進(jìn)入正確頁(yè)面3.2.2 新知識(shí)點(diǎn)response、out 3.
33、2.2.1 response JSP的內(nèi)置對(duì)象response代表服務(wù)器端返回給客戶端的相應(yīng),其主要用于處理響應(yīng)數(shù)據(jù)。該對(duì)象的方法主要包括處理響應(yīng)頭的相關(guān)屬性的方法、設(shè)定響應(yīng)狀態(tài)碼的方法、重定向方法、設(shè)置響應(yīng)體相關(guān)內(nèi)容和屬性的方法等等。其常用方法見(jiàn)表3-3所示。表3- 3 response對(duì)象的常用方法方法 說(shuō)明 void setHeader(String name, String value) 為名為name的響應(yīng)頭設(shè)定值為value oolean containsHeader(String name) 判斷響應(yīng)對(duì)象中是否有名為name的頭void addCookie(Cookie cook
34、ie) 將參數(shù)指定的cookie添加到response對(duì)象中void sendRedirect(String location) 將頁(yè)面重定向到參數(shù)所指定的URL void setContentType(String type) 設(shè)置響應(yīng)的MIME類(lèi)型PrintWriter getWriter() 得到返回客戶端的打印流 out對(duì)象 out對(duì)象是javax.servlet.jsp.JspWriter類(lèi)的實(shí)例,表示一個(gè)輸出流,用于向客戶端輸出數(shù)據(jù)。查閱API文檔可知,JspWriter對(duì)象和由ServletResponse的getWriter()方法得到的PrintWriter對(duì)象
35、是有依賴關(guān)系的。如果頁(yè)面沒(méi)有緩沖區(qū),那么寫(xiě)入JspWriter對(duì)象的數(shù)據(jù)將直接通過(guò)PrintWriter對(duì)象進(jìn)行輸出;如果頁(yè)面有緩沖區(qū),則直到緩沖區(qū)滿且如setContentType()等操作都合法時(shí)才創(chuàng)建PrintWriter對(duì)象,由PrintWrtier對(duì)象進(jìn)行輸出。3.2.3 擴(kuò)展設(shè)置響應(yīng)的MIME類(lèi)型任務(wù):將一個(gè)文本文件包含在jsp頁(yè)面中,且在顯示頁(yè)面內(nèi)容之前先讓用戶選擇查看文件所使用的方式,將三種可選方式(文本方式、網(wǎng)頁(yè)方式、word文檔方式)放在下拉框中供用戶選擇。當(dāng)用戶選擇并點(diǎn)擊“查看按鈕”后,按用戶所選方式展現(xiàn)內(nèi)容。3.3 存儲(chǔ)用戶會(huì)話3.3.1 任務(wù)描述與實(shí)現(xiàn)
36、判斷用戶是否已登錄實(shí)現(xiàn)如下功能:用戶成功登錄后,只要未關(guān)閉瀏覽器的情況下,可隨時(shí)訪問(wèn)本站點(diǎn)的任何頁(yè)面(當(dāng)然此處本站點(diǎn)只有登錄頁(yè)面和歡迎頁(yè)面),如果用戶在未登錄的情況下訪問(wèn)歡迎頁(yè)面的話,給出相應(yīng)的提示,并在5秒后跳轉(zhuǎn)到登錄頁(yè)面。實(shí)現(xiàn):當(dāng)用戶在登錄頁(yè)面(exam3_3_login.jsp)輸入用戶名和密碼并點(diǎn)擊登錄后,在處理頁(yè)面exam3_3_login_do.jsp(代碼如程序3-12所示)中判斷用戶名和密碼是否正確,如果正確,即登錄成功,則將名為“username”,值為用戶所輸入的用戶名的屬性添加到session對(duì)象中,然后進(jìn)入exam3_3_welcome.jsp(代碼如程序3-13所示)
37、中;如果用戶名或密碼不正確,則輸出提示“用戶名或密碼不正確,5秒后為您跳轉(zhuǎn)回登錄頁(yè)面”,并在5秒后跳轉(zhuǎn)回登錄頁(yè)面。如果用戶沒(méi)有登錄,而直接訪問(wèn)exam3_3_welcome.jsp,則輸出提示“您必須先登錄,5秒后為您跳轉(zhuǎn)回登錄頁(yè)面”,并在5秒后跳轉(zhuǎn)回登錄頁(yè)面。3.3.2 新知識(shí)點(diǎn)session、aplication session session(會(huì)話)是用來(lái)在訪問(wèn)一個(gè)網(wǎng)站時(shí)發(fā)出的多個(gè)頁(yè)面請(qǐng)求或者在多次頁(yè)面跳轉(zhuǎn)之間識(shí)別同一個(gè)用戶并且存儲(chǔ)這個(gè)用戶的相關(guān)信息的一種方式。通常從一個(gè)客戶連接到某個(gè)服務(wù)器開(kāi)始,直到他關(guān)閉瀏覽器離開(kāi)這個(gè)服務(wù)器為止,稱之為一次會(huì)話。Servlet容器使用j
38、avax.servlet.http.HttpSession這個(gè)接口在HTTP客戶端和服務(wù)器端之間創(chuàng)建一個(gè)會(huì)話,JSP的內(nèi)置對(duì)象session就是這個(gè)接口的一個(gè)實(shí)例。一個(gè)session通常只對(duì)應(yīng)一個(gè)用戶,它有一定的生存時(shí)間,它可以使同一個(gè)用戶在訪問(wèn)同一個(gè)Web站點(diǎn)時(shí)在多個(gè)頁(yè)面連接和請(qǐng)求之間共享數(shù)據(jù)。服務(wù)器通常通過(guò)cookie或者重寫(xiě)URL的方式來(lái)維持session,不過(guò)開(kāi)發(fā)者無(wú)需關(guān)心這些細(xì)節(jié)。 HttpSession接口的方法主要分為兩類(lèi),一類(lèi)是查看和操作關(guān)于這個(gè)session的信息的方法,如session的ID、創(chuàng)建時(shí)間、最近訪問(wèn)時(shí)間等;另一類(lèi)方法是將對(duì)象綁定到session中,以能夠使用戶信
39、息在客戶端與服務(wù)器端的多次連接中能夠共享。 application JSP內(nèi)置的application對(duì)象是javax.servlet.ServletContext類(lèi)的一個(gè)實(shí)例,可以通過(guò)它和Servlet容器進(jìn)行通信,如獲取一個(gè)文件的MIME類(lèi)型,轉(zhuǎn)發(fā)請(qǐng)求,寫(xiě)日志文件等等;也可以通過(guò)它共享一些全局信息。Application對(duì)象表示Servlet的上下文,每臺(tái)Java虛擬機(jī)上的同一個(gè)Web應(yīng)用只有一個(gè)上下文,即當(dāng)Web應(yīng)用被部署到服務(wù)器上,服務(wù)器啟動(dòng)時(shí)就創(chuàng)建一個(gè)application對(duì)象,所有訪問(wèn)該應(yīng)用的客戶都共享同一個(gè)application對(duì)象,直到服務(wù)器關(guān)閉。因此可以通過(guò)將一
40、些信息放在application對(duì)象里,以實(shí)現(xiàn)全局共享,當(dāng)然要注意這個(gè)“全局”只是相對(duì)的,因?yàn)椴煌腏ava虛擬機(jī)上的Servlet上下文也是不同的。3.3.3 擴(kuò)展cookie 記錄用戶以往訪問(wèn)當(dāng)前站點(diǎn)的相關(guān)信息任務(wù)描述:當(dāng)用戶訪問(wèn)本網(wǎng)站的登錄頁(yè)面時(shí),能夠自動(dòng)顯示出該用戶以前訪問(wèn)本網(wǎng)站時(shí)曾經(jīng)使用過(guò)的用戶名。實(shí)現(xiàn)過(guò)程:這樣的功能一般都是基于cookie實(shí)現(xiàn)的。首先創(chuàng)建一個(gè)web應(yīng)用,當(dāng)用戶訪問(wèn)本網(wǎng)站的登錄頁(yè)面exam3_3_cookie_login.jsp(代碼如程序3-17所示)時(shí),該頁(yè)面讀取客戶端的cookie,如果cookie中存在username記錄,則在登錄表單的用戶名
41、一欄中自動(dòng)填入該username值。當(dāng)用戶成功登錄后,將該username存入cookie中。 知識(shí)點(diǎn):Cookie簡(jiǎn)介Cookie 是 Web服務(wù)器發(fā)送給客戶端的一小段信息。如果服務(wù)器需要在客戶端記錄某些數(shù)據(jù)時(shí),就可以向客戶端發(fā)送Cookie,客戶端接收并保存該 Cookie,而且客戶端每次訪問(wèn)該服務(wù)器上的頁(yè)面時(shí)就會(huì)將 Cookie 隨請(qǐng)求數(shù)據(jù)一同發(fā)送給服務(wù)器。下面從向客戶端發(fā)送Cookie以及從客戶端讀取Cookie兩方面來(lái)介紹Cookie的使用方法。1.向客戶端發(fā)送Cookie 首先需要?jiǎng)?chuàng)建Cookie對(duì)象:Cookie c=new Cookie(“cookieName”,
42、 “cookieValue”);然后需要調(diào)用setMaxAge(long time)為Cookie對(duì)象設(shè)置有效時(shí)間(該時(shí)間參數(shù)以秒為單位),不然瀏覽器關(guān)閉時(shí)Cookie就會(huì)被刪除;最后使用HttpServletResponse對(duì)象的addCookie(Cookie c)方法把Cookie對(duì)象添加到HTTP響應(yīng)頭中發(fā)送到客戶端。2.從客戶端讀取Cookie 首先獲取客戶端上傳的Cookie數(shù)組:調(diào)用HttpServeltRequest對(duì)象的getCookies()得到一個(gè)Cookie對(duì)象的數(shù)組;然后遍歷該數(shù)組,找尋需要的Cookie對(duì)象:通過(guò)Cookie的getName()方法,獲取Cookie
43、對(duì)象的name屬性,通過(guò)getValue()方法獲取Cookie對(duì)象的值?!窘虒W(xué)小結(jié)】 本章介紹了JSP的各個(gè)內(nèi)置對(duì)象,并著重講解了request、response、session、application、out這幾個(gè)最常用的對(duì)象,這些對(duì)象在JSP開(kāi)發(fā)中具有很重要的地位,希望讀者能夠結(jié)合本章任務(wù)理解這些對(duì)象,并能夠掌握其用法。對(duì)于其它未詳解的對(duì)象,可參考相關(guān)的API文檔。課題:第四章 JDBC與數(shù)據(jù)庫(kù)應(yīng)用【教學(xué)目標(biāo)】掌握通過(guò)JDBC連接數(shù)據(jù)庫(kù)并進(jìn)行數(shù)據(jù)操作的方法【教學(xué)重點(diǎn)】連接數(shù)據(jù)庫(kù)和讀取數(shù)據(jù)庫(kù)、寫(xiě)入數(shù)據(jù)庫(kù)【教學(xué)難點(diǎn)】連接數(shù)據(jù)庫(kù)和讀取數(shù)據(jù)庫(kù)、寫(xiě)入數(shù)據(jù)庫(kù)【教學(xué)方法】講解、演示【教學(xué)地點(diǎn)】教學(xué)樓、
44、綜合樓【課時(shí)安排】4課時(shí)【教學(xué)過(guò)程】 4.1 連接數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)4.1.1 任務(wù)描述與實(shí)現(xiàn)通過(guò)JDBC連接Mysql數(shù)據(jù)庫(kù),查詢hncst數(shù)據(jù)庫(kù)中users數(shù)據(jù)表中的數(shù)據(jù),并以表格形式顯示,如表4-1所示。Users表的結(jié)構(gòu)如表4-1所示。表4- 1 任務(wù)執(zhí)行結(jié)果用戶名 密碼 性別 Email 熟練開(kāi)發(fā)語(yǔ)言leiyanrui 123456 female leiyanruiJAVA,C,C# 4.1.2 新知識(shí)點(diǎn)JDBC概述、JDBC連接Mysql數(shù)據(jù)庫(kù) JDBC簡(jiǎn)介JDBC的英文名稱是Java Database Connecivity,中文名稱是Java數(shù)據(jù)庫(kù)連接,它是一種用于
45、執(zhí)行SQL語(yǔ)句的Java API類(lèi)包,由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成,通過(guò)它可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用純 Java API 編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。JDBC是Java操作數(shù)據(jù)庫(kù)的方法,由SUN提供。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問(wèn)MySQL數(shù)據(jù)庫(kù)專門(mén)寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門(mén)寫(xiě)一個(gè)程序。使用JDBC API,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用,這和Microsoft的ODBC技術(shù)是類(lèi)似的,ODBC是由Microsoft公司倡導(dǎo)并得到業(yè)界普
46、遍響應(yīng)的數(shù)據(jù)庫(kù)連接技術(shù),通過(guò)它可以使用一組通用的接口與各種數(shù)據(jù)庫(kù)進(jìn)行連接,但這僅限于Windows平臺(tái);而JDBC不同,使用Java編寫(xiě)的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,程序員甚至不必在不同的平臺(tái)上編寫(xiě)不同的應(yīng)用。這也是Java語(yǔ)言“編寫(xiě)一次,處處運(yùn)行”的優(yōu)勢(shì)。 Mysql數(shù)據(jù)庫(kù)簡(jiǎn)介MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2008年1月16日被Sun公司收購(gòu)。2009年,Sun又被Oracle收購(gòu)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn)受到了眾多中
47、小型網(wǎng)站制作者的青睞。MySQL的開(kāi)發(fā)也得到了很多著名廠商和技術(shù)團(tuán)隊(duì)支持。 JDBC連接Mysql數(shù)據(jù)庫(kù)的基本步驟1. 下載驅(qū)動(dòng)。要通過(guò)JDBC連接數(shù)據(jù)庫(kù)需要使用數(shù)據(jù)庫(kù)廠商提供的JDBC Drive。在Mysql官方網(wǎng)站下載其JDBC驅(qū)動(dòng),官網(wǎng)地址:,下載頁(yè)面如圖4-2所示。2將下載好的驅(qū)動(dòng)mysql-connector-java-5.1.17-bin.jar文件(此處的5.1.17為驅(qū)動(dòng)版本號(hào)),復(fù)制到當(dāng)前工程的WEB-INF的lib目錄中,如圖4-3、圖4-4所示。3.編寫(xiě)數(shù)據(jù)庫(kù)連接程序。(1)加載驅(qū)動(dòng)。Class.forName(“com.mysql.jdbc.Driver
48、”).newInstance(); (2)建立連接對(duì)象。String url=”jdbc:mysql:/localhost:3306/hncst”;/連接字符串Connection conn=DriverManager.getConnection(url); (3)建立Statement對(duì)象或PreparedStatement對(duì)象。 Statement stmt=conn.createStatement();/創(chuàng)建Statement 對(duì)象String sql=”select * from users where oolean=? And password=?”; PreparedStateme
49、nt pstmt=conn.prepareStatement(sql); /創(chuàng)建Preparedment 對(duì)象pstmt.setString(1,”admin”); pstmt.setString(2,”liubin”); Statement是PreparedStatement的父接口。Statement 對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)單SQL語(yǔ)句;PreparedStatement 對(duì)象用于執(zhí)行預(yù)編譯SQL語(yǔ)句;也就是說(shuō),Statement接口提供了基本方法,而PreparedStatement接口添加了處理 IN 參數(shù)的方法。對(duì)于需多次執(zhí)行的SQL語(yǔ)句,用PreparedStatement即可以
50、減輕編碼負(fù)擔(dān),又可以提高系統(tǒng)效率。(4)執(zhí)行SQL語(yǔ)句。執(zhí)行SQL查詢1String sql=”select * from users”; ResultSet rs=stmt.executeQuery(sql); 執(zhí)行insert,update,delete等語(yǔ)句,先定義sql 2stmt.executeUpdate(sql); Statement 接口提供了三種執(zhí)行 SQL 語(yǔ)句的方法:executeQuery、executeUpdate 和 execute。使用哪一個(gè)方法由 SQL 語(yǔ)句所產(chǎn)生的內(nèi)容決定。(5)關(guān)閉對(duì)象,釋放資源。Rs.close(); stmt.close(); conn
51、.close(); 通過(guò)上面五個(gè)步驟,就可以完成JDBC連接數(shù)據(jù)庫(kù),執(zhí)行SQL語(yǔ)句,并在執(zhí)行完后釋放數(shù)據(jù)庫(kù)資源。4.1.3 擴(kuò)展JDBC連接SQL Server、Oracle JDBC連接SQL Server SQL Server是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。SQL Server使用集成的商業(yè)智能工具提供企業(yè)級(jí)的數(shù)據(jù)管理,可以為不同規(guī)模的企業(yè)提供不同的數(shù)據(jù)管理解決方案。下邊以SQL Server2005為例,介紹JDBC連接SQL Server數(shù)據(jù)庫(kù)。實(shí)現(xiàn)過(guò)程: 通過(guò)JDBC連接SQL Server的hncst數(shù)據(jù)庫(kù),實(shí)例文件為exam4_2_sqlserver.jsp,具體步驟
52、如下: 1.在Microsoft SQL Server的官網(wǎng)下載SQL Server JDBC 驅(qū)動(dòng)(不同版本的數(shù)據(jù)庫(kù)對(duì)應(yīng)不同驅(qū)動(dòng)程序)。將下載好的驅(qū)動(dòng)sqljdbc.jar文件復(fù)制到網(wǎng)站的lib目錄中。2.將SQL Server的驗(yàn)證方式改為混合驗(yàn)證方式,并設(shè)置合法用戶名和密碼。打開(kāi)Microsoft SQL Server Management Studio Express,通過(guò)右鍵點(diǎn)擊數(shù)據(jù)庫(kù)“服務(wù)器屬性”面板,在“安全”選項(xiàng)里進(jìn)行配置,重啟SQL Server后生效, JDBC連接Oracle 與JDBC連接Mysql、SQLServer類(lèi)似,需要先下載Oracle數(shù)據(jù)庫(kù)的J
53、DBC驅(qū)動(dòng),并將其放置在網(wǎng)站的lib目錄下。在此不再詳細(xì)描述。其次,創(chuàng)建連接文件JDBCOracleConnection.jsp,代碼如程序4-3所示。4.2 寫(xiě)入數(shù)據(jù)庫(kù)4.2.1 任務(wù)描述與實(shí)現(xiàn)編寫(xiě)程序完成用戶注冊(cè)功能,即通過(guò)JDBC連接數(shù)據(jù)庫(kù),并向users表中添加一條新記錄。注冊(cè)的資料包含姓名、密碼、性別、熟練開(kāi)發(fā)語(yǔ)言、個(gè)人簡(jiǎn)介。4.2.2 新知識(shí)點(diǎn)Connection、Statement、ResultSet等對(duì)象的常用方法在Java語(yǔ)言中提供了豐富的類(lèi)和接口用于數(shù)據(jù)庫(kù)編程,利用它們可以方便地進(jìn)行數(shù)據(jù)的訪問(wèn)和處理。下面主要介紹Java.sql包中提供的常用類(lèi)和接口。1Driver接口每個(gè)
54、數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序必須實(shí)現(xiàn)Driver接口,對(duì)于JSP開(kāi)發(fā)者來(lái)說(shuō)只要使用Driver接口就可以了。在編程中要連接數(shù)據(jù)庫(kù)必須要裝載特定的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序(Driver),格式如下: Class.forName(“數(shù)據(jù)庫(kù)商提供的驅(qū)動(dòng)程序名稱”); 在使用Class.forName之前,應(yīng)先使用Import語(yǔ)句導(dǎo)入java.sql包,即在Java源程序中為:import java.sql.*; 在JSP程序中為: 2DriverManager接口java.sql.DriverManager類(lèi)負(fù)責(zé)管理JDBC驅(qū)動(dòng)程序的基本服務(wù),是JDBC的管理層,作用于用戶和驅(qū)動(dòng)程序之間,用來(lái)管理數(shù)據(jù)庫(kù)中的所有驅(qū)動(dòng)程序。它可以跟蹤可用的驅(qū)動(dòng)程序,注冊(cè)、注銷(xiāo)以及為數(shù)據(jù)庫(kù)連接合適的驅(qū)動(dòng)程序,設(shè)置登錄時(shí)間限制等。4Statement接口Statement接口用于在已經(jīng)建立連接的基礎(chǔ)上向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句。Statement接口中包含了執(zhí)行SQL語(yǔ)句和獲取返回結(jié)果的方法。在JDBC中有3種Statement對(duì)象:Statement、PreparedStateme
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 助理工程師年終工作總結(jié)15篇
- 2025年安防電子項(xiàng)目提案報(bào)告
- 2024-2025學(xué)年西藏日喀則地區(qū)康馬縣數(shù)學(xué)三年級(jí)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 2025年VSAT網(wǎng)絡(luò)管理系統(tǒng)項(xiàng)目提案報(bào)告模范
- 2025年混凝土泵車(chē)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 愛(ài)國(guó)主義演講稿三分鐘
- 會(huì)計(jì)類(lèi)自薦信范文集合七篇
- 感恩父母的演講稿范文集錦八篇
- 寫(xiě)景的作文300字集合8篇
- 你的名字動(dòng)畫(huà)電影觀看感想
- 【企業(yè)杜邦分析國(guó)內(nèi)外文獻(xiàn)綜述6000字】
- 2023-2024學(xué)年浙江省富陽(yáng)市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末通關(guān)試題
- GB/T 5343.2-2007可轉(zhuǎn)位車(chē)刀及刀夾第2部分:可轉(zhuǎn)位車(chē)刀型式尺寸和技術(shù)條件
- GB/T 32285-2015熱軋H型鋼樁
- 中考數(shù)學(xué)真題變式題庫(kù)
- FZ/T 91019-1998染整機(jī)械導(dǎo)布輥制造工藝規(guī)范
- 主持人培訓(xùn) 課件
- SHSG0522003 石油化工裝置工藝設(shè)計(jì)包(成套技術(shù))內(nèi)容規(guī)定
- 制造部年終總結(jié)報(bào)告課件
- 企業(yè)大學(xué)商學(xué)院建設(shè)方案
- 粵科版高中通用技術(shù)選修1:電子控制技術(shù)全套課件
評(píng)論
0/150
提交評(píng)論