版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課題:第一章JavaWeb概述
【教學(xué)目的】
駕馭JSP運(yùn)行環(huán)境的搭建,能進(jìn)展簡(jiǎn)潔的JSP程序編寫與運(yùn)行。
【教學(xué)重點(diǎn)】
Eclipse+Dreamweaver工具、工程的導(dǎo)入、導(dǎo)出、發(fā)布打包
【教學(xué)難點(diǎn)】
Eclipse+Dreamweaver工具、工程的導(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效勞器,并顯示其歡送頁(yè)面。如圖1T所示。
圖1-1運(yùn)用Tomcat歡送頁(yè)面
實(shí)現(xiàn)過(guò)程:
1.安裝JDK
安裝Tomcat效勞器前首先安裝JDK(JavaDevelopmentKit),其包括了Java運(yùn)行環(huán)境,Java
工具和Java根底的類庫(kù)。目前,供給下載的最新版本為JDK7。讀者可到官方網(wǎng)站下載,下載
地址為。
下載后雙擊安裝,畫面如圖1-2所示,按“下一步”操作直到完成。
Java(Tl)SEDevelopmentKit7一設(shè)置
£Java
ORACLE
歡迎使用Java(IW)SEDevelopmentKit7安裝向?qū)?/p>
此向?qū)⒁龑?dǎo)您完成JavaSEDevelopmentKit7的安裝過(guò)程。
j-產(chǎn)步⑼取消
圖1-2JDK安裝界面
2.安裝Tomcat
Tomcal官方網(wǎng)站下載地址:。本書采納的版本是Tomcat-7.0.20。
下載后,雙擊安裝,如圖-3所示。點(diǎn)擊Next到第一步,進(jìn)展安裝組件選擇,如圖14所
示。第二步選擇途徑,根據(jù)系統(tǒng)默認(rèn)途徑即可。第三步為配置Tomcat端口信息和賬號(hào)信息,
如圖1-5所示,根據(jù)實(shí)際配置即可.第四步為選擇JDK的安裝途徑,如圖1-6所示,選擇在之前
第1步操作中安裝的JDK所在的位置。之后單擊“Next”開場(chǎng)安裝。安裝完畢后,提示安裝完
成,如圖如7所示。單擊“Finish”完成Tomcat的安裝。
安裝完成之后,在程序菜單中可以看到Tomcat的選項(xiàng),如圖1-8所示。點(diǎn)擊MonitorTomcat,
可在任務(wù)欄看到Tomcat的效勞圖標(biāo),如圖「9所示,雙擊該圖標(biāo),彈出如圖1T0所示的Tomcat
啟動(dòng)界面,在此界面中可以選擇啟動(dòng)或停頓Tomcat效勞。
啟動(dòng)Tomcat后,在地址欄中輸入,若出現(xiàn)圖1T的顯示效果,則Tomcat已正常安裝并運(yùn)行。
圖1-3Tomcat安裝:歡送界面
1.1.2新學(xué)問(wèn)點(diǎn)一一JSP概述、Tomcat書目構(gòu)造、虛擬書目配置
1.1.2.1JSP概述
1.動(dòng)態(tài)網(wǎng)頁(yè)
動(dòng)態(tài)網(wǎng)頁(yè)是在效勞器運(yùn)行的程序或者網(wǎng)頁(yè),它們會(huì)隨不同用戶、不同時(shí)間、不同需求,
返回不同的內(nèi)容。如:當(dāng)?shù)卿浀秸搲瘯r(shí),作為論壇管理員身份,就可以看到''刪除"、“修
改”等操作;作為論壇一般用戶身份,則只能看到帖子的閱讀頁(yè)面。
動(dòng)態(tài)網(wǎng)頁(yè)會(huì)運(yùn)用效勞器端腳本語(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è)中填寫表
單信息并提交,效勞器經(jīng)過(guò)處理將信息自動(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)效勞器將自動(dòng)生成新的網(wǎng)頁(yè)內(nèi)容。
2.B/S技術(shù)
運(yùn)用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)開發(fā)網(wǎng)站事實(shí)上是B/S技術(shù)的一種應(yīng)用,因此,要更好地理解動(dòng)態(tài)網(wǎng)頁(yè)
的開發(fā)原理,首先需要理解B/S技術(shù)的一些根本概念。
B/S技術(shù)跟C/S技術(shù)的區(qū)分:
C/S(客戶機(jī)/效勞器)構(gòu)造分為客戶機(jī)和效勞器兩層,一般將應(yīng)用軟件安裝在客戶機(jī)端,
通過(guò)網(wǎng)絡(luò)與效勞器互相通信,實(shí)現(xiàn)交互,如QQ、飛信、MSN等軟件。對(duì)于這類系統(tǒng)的構(gòu)造如圖
1T1所示。
對(duì)于C/S構(gòu)造的應(yīng)用軟件,若要在客戶機(jī)運(yùn)行,就必需在先安裝,而且每次對(duì)系統(tǒng)做了微小
的改動(dòng),全部客戶機(jī)的應(yīng)用軟件都需要更新。
3.JSP簡(jiǎn)介
(1)什么是JSP
JSP(JavaServerPages)是由SunMicrosystems公司提倡、很多公司參加一起建立的一種動(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èn)JSP網(wǎng)頁(yè)的懇求時(shí),首先
對(duì)其中的Java代碼進(jìn)展處理,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶的閱
讀器。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的
功能。
4.JSP的特點(diǎn)
JSP最大的優(yōu)點(diǎn)是開發(fā)的跨平臺(tái)構(gòu)造,它可以運(yùn)行在幾乎全部的操作系統(tǒng)平臺(tái)。
JSP的優(yōu)勢(shì):
一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更精彩,除了系統(tǒng)之外,代碼不用做任何更
改。
系統(tǒng)的多平臺(tái)支持。根本上可以在全部平臺(tái)上的隨意環(huán)境中開發(fā),在隨意環(huán)境中進(jìn)展系
統(tǒng)部署,在隨意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是自不待言的。
強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)效勞器進(jìn)
展集群和負(fù)載平衡,到多臺(tái)Application進(jìn)展事務(wù)處理,消息處理,一臺(tái)效勞器到多數(shù)臺(tái)效勞
器,Java顯示了一個(gè)宏大的生命力。
多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了很多特別優(yōu)秀的開
發(fā)工具,而且很多可以免費(fèi)得到,并且其中很多已經(jīng)可以順當(dāng)?shù)倪\(yùn)行于多種平臺(tái)之下。
JSP的優(yōu)勢(shì):
與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了
極度的伸縮實(shí)力,所以極大的增加了產(chǎn)品的困難性。
Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些狀況下所運(yùn)用的內(nèi)存比起用
戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來(lái)儲(chǔ)存一系列
的.java文件和.class文件以及對(duì)應(yīng)的版本文件。
5.JSP開發(fā)及運(yùn)行環(huán)境要求
①操作系統(tǒng)要求
操作系統(tǒng)可以選擇Windows操作系統(tǒng)、Unix操作系統(tǒng)和Linux操作系統(tǒng)等。
②軟件環(huán)境要求
集成開發(fā)工具:集成開發(fā)工具有NetBeans、Eelipse等。本書選用Eelipse。
Web效勞器:JSP運(yùn)行時(shí)需要安裝JDK和Web效勞器,目前運(yùn)用較多的Web效勞器有Tomcat.
WebLogic>Jboss和Resin等。本書選用Tomcat。Tomcat是Apache軟件基金會(huì)(Apache
SoftwareFoundation)的Jakarta工程中的一個(gè)核心工程,由Apache、Sun和其他一些公
司及個(gè)人共同開發(fā)而成。本書選用目前最新版本Tomcat7.0。
1.1.2.3虛擬書目配置
配置JavaWebExample的虛擬書目,方法如下:
1.前期打算工作
①在D盤建立D:\WorkSpace\JavaWebExample的文件夾(也可以建立在其他磁盤)。
②在JavaWebExample文件夾中新建index.html文件,輸入“歡送”二字。
2.配置Tomcat虛擬書目
①翻開Tomcat的安裝書目下conf文件夾的server,xml文件。在<11。51>和</Host>標(biāo)簽之
間加上虛擬書目配置標(biāo)簽,即<Contextpath="/JavaWebExamp1e,,
docBase="D:\WorkSpace\JavaWebExample”/>,其中path屬性值為虛擬書目名稱,docBase
屬性值為虛擬書目指向的物理書目。修改后如圖1-16所示。這里path保存的值是你在閱讀器
中輸入的值即虛擬書目,docBase保存的值是你要訪問(wèn)的文件的物理肯定途徑。
1.2利用開發(fā)工具制作Hello.jsp
1.2.1任務(wù)描繪與實(shí)現(xiàn)任務(wù)描繪:
利用Dreamweaver、Eclipse搭配開發(fā)一個(gè)簡(jiǎn)潔的JSP網(wǎng)頁(yè)。
開發(fā)過(guò)程采納Eclipse和Dreamweaver搭配開發(fā),設(shè)計(jì)顯示界面部分用Dreamweaver實(shí)現(xiàn),
代碼在界面制作自動(dòng)生成根底上在Eclipse中編寫,最終在Eelipse中測(cè)試運(yùn)行實(shí)現(xiàn)過(guò)程:
1.下載安裝Eclipse
至ijEclipse的官方網(wǎng)站下載EelipseIDEforJavaEEDevelopers,下載后解壓即可運(yùn)用。
Eelipse官方網(wǎng)站。
2.下載并安裝DreamWeaver8
3.配置Eclipse開發(fā)環(huán)境
啟動(dòng)后,配置Web工程測(cè)試效勞器。翻開Window-Preferences菜單,選擇ServerfRuntime
Environments選項(xiàng),然后選擇添加效勞器,添加已經(jīng)安裝的Tomcatv7.0。
4.在Eclipse中創(chuàng)立JavaWebExample工程
在新建工程選擇對(duì)話框,選擇DynamicsWebProject,如圖1-24所示。單擊“Next”按
鈕后,出現(xiàn)如圖1-25所示的對(duì)話框,填寫工程名稱JavaWebExample,選擇與工程相關(guān)的信息。
在本例中,工程文件都置于D:'workspace\JavaWebExample中,因此以默認(rèn)選項(xiàng)配置;測(cè)試
用效勞器選擇Tomcat7.0,其它部分按默認(rèn)配置,之后單擊“Finish”按鈕。
5.在Dreamweaver中創(chuàng)立JavaWebExample站點(diǎn)
在Dreamweaver中創(chuàng)立站點(diǎn)時(shí),其站點(diǎn)根書目指向在Eelipse中創(chuàng)立的工程的WebContent
書目,本例的根書目為D:\workspace、JavaWebExample\WebContent,如圖1-29所示。此外,
設(shè)置站點(diǎn)為JSP站點(diǎn),并指定前綴。
6.測(cè)試。
測(cè)試在Dreamweaver中編寫的Web頁(yè)面,在Eclipse中運(yùn)行。本例中為了便利演示,在
Dreamweaver的JavaWebExample站點(diǎn)的Chapterl文件夾創(chuàng)立一個(gè)簡(jiǎn)潔的JSP頁(yè)面
examl_l_Hello.jsp
1.2.2新學(xué)問(wèn)點(diǎn)Eclipse.Dreamweaver工具簡(jiǎn)介
1.2.2.1Eelipse簡(jiǎn)介
Eclipse是聞名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE),最初主要用于Java語(yǔ)言開發(fā),目前
也有人通過(guò)插件使其作為其他計(jì)算機(jī)語(yǔ)言(如C++和Python)的開發(fā)工具。雖然Eelipse本身只
是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具
有的敏捷性。很多軟件開發(fā)商以Eelipse為框架開發(fā)自己的IDE。
Eclipse就其本身而言,它只是一個(gè)框架和一組效勞,但可通過(guò)插件組件構(gòu)建集成開發(fā)環(huán)
境。Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentTools,JDT)1.
Eclipse最初是由IBM公司開發(fā)的替代商業(yè)軟件VisualAgeforJava的下一代IDE
Eclipse,2001年11月奉獻(xiàn)給開源社區(qū),如今它由非盈利軟件供給商聯(lián)盟Eclipse基金會(huì)
(EclipseFoundation)管理。
1.2.2.2Dreamweaver簡(jiǎn)介
Dreamweaver,簡(jiǎn)稱DW,是一款有著多年歷史和良好口碑的可視化網(wǎng)頁(yè)編輯工具,它最大
的優(yōu)點(diǎn)就是所見即所得,對(duì)W3c網(wǎng)頁(yè)標(biāo)準(zhǔn)化支持特別到位。同時(shí)它還支持網(wǎng)站管理,包含HTML
檢查、HTML格式限制、HTML格式化選項(xiàng)、HomeSite/BBEdit捆綁、圖像編輯、全局查找交換、
全FTP功能、處理Flash和Shockwave等多媒體格式和動(dòng)態(tài)HTML,以及支持ASP、JSP、PHP、
ASP.NET、XML等程序語(yǔ)言的編寫與調(diào)試。
1.2.2.3工具結(jié)合開發(fā)調(diào)試工程
運(yùn)用Eelipse開發(fā)程序時(shí),雖然系統(tǒng)框架構(gòu)造會(huì)給你帶來(lái)便利,但并不太合適于開發(fā)Web
顯示界面,而Dreamweaver開發(fā)Web頁(yè)面時(shí)可以實(shí)現(xiàn)所見即所得的效果,頁(yè)面也遵循W3c國(guó)際標(biāo)
準(zhǔn)。因此,可以利用這些開發(fā)工具各自的優(yōu)點(diǎn),結(jié)合開發(fā)Web程序,從而進(jìn)步開發(fā)效率。
1.2.3擴(kuò)展——現(xiàn)有工程導(dǎo)入、導(dǎo)出、發(fā)布打包
對(duì)于程序員來(lái)說(shuō),有時(shí)需要將現(xiàn)有工程導(dǎo)入、導(dǎo)出和發(fā)布打包,下面介紹如何將工程導(dǎo)
入、導(dǎo)出和發(fā)布打包。
1.2.3.1工程導(dǎo)入
工程導(dǎo)入可干脆將文件拷貝至相應(yīng)文件夾中,也可導(dǎo)入War文件。下面先來(lái)介紹第一種
方法。
1.文件拷貝
(1)新建工程
在Eclipse中新建project,參考1.2.2中介紹新建工程。新建工程test,此時(shí)src及
WebContent均為空,
【教學(xué)小結(jié)】
本章介紹了進(jìn)展JavaWeb應(yīng)用開發(fā)的特點(diǎn),B/S架構(gòu)的優(yōu)勢(shì),介紹了JavaWeb程序的效勞
器運(yùn)行的安裝配置及開發(fā)工具的搭配運(yùn)用,重點(diǎn)介紹了JDK、Tomcat的安裝與配置,以及利用
DreamWeaver與Eelipse搭配開發(fā)工程。
通過(guò)本章的學(xué)習(xí),讀者可以創(chuàng)立簡(jiǎn)潔的JSP文件,并且進(jìn)展測(cè)試。
課題:第二章JSP語(yǔ)法
【教學(xué)目的】
駕馭JSP的頁(yè)面組成,駕馭JSP簡(jiǎn)潔網(wǎng)站的制作
【教學(xué)重點(diǎn)】
page指令、include指令、lablib指令、<jsp:include>動(dòng)作指令、<jsp:forward>動(dòng)作指令
【教學(xué)難點(diǎn)】
page指令、include指令、tablib指令、<jsp:include>動(dòng)作指令、<jsp:forward>^J作指令
【教學(xué)方法】講解、探討
【教學(xué)地點(diǎn)】教學(xué)樓、綜合樓
【課時(shí)支配】4課時(shí)
【教學(xué)過(guò)程】
2.1制作第一個(gè)JSP頁(yè)面
2.1.1任務(wù)描繪與實(shí)如今Jsp文件中定義方法實(shí)現(xiàn)兩個(gè)數(shù)的加法
定義方法實(shí)現(xiàn)兩個(gè)數(shù)的加法,調(diào)用其計(jì)算1+2并顯示結(jié)果,如圖2-1所示。
JavaEE-hiip://localhost:8080/JavaYebExaaple/chapter2/exaa2_l_swB....
FileEditNavigateSearchProjectRunWindowHelp
?J器,。的心JavaEI
j多日夕甲J.?qs,
卜;exam2_l_sum.jsphttp:"localhost:8080/Ja“aWebExam=B
f|j:8080/JauaWebExample/chapter2/exa/n2_l_swn.jsp▼]>
兩個(gè)數(shù)的求和結(jié)果:1+2=3
二J
3Harkers[口Prop?rti?(3%ServersSnippets|國(guó)Console
目exam2_l_sum.jsp-a/WebContent/chapter2
J
圖2-1求和效果
實(shí)現(xiàn)過(guò)程:
1.新建JSP文件。在工程的chapter2文件夾中,單擊右鍵選擇New-JSPFile選項(xiàng),
彈出如圖2-2所示的對(duì)話框,在中輸入exam21sum.jsp,單擊Finish之后進(jìn)入JSP頁(yè)面編
輯窗口,輸入代碼如程序2-1。
2.1.2新學(xué)問(wèn)點(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的構(gòu)造;動(dòng)作元素用來(lái)引入現(xiàn)有的組件或者限制JSP引擎的
行為。
2.1.2.1聲明朗!%>
JSP中聲明部分可以進(jìn)展變量、方法和類的聲明,其一般在<%!%>標(biāo)簽中進(jìn)展。其語(yǔ)法格
式為<%!聲明1;聲明2;……%>。
如在程序2-1中,進(jìn)展了求和方法的聲明。下邊進(jìn)展一個(gè)變量的聲明,如程序2-2。
2.1.2.2代碼段<%%>
在JSP頁(yè)面中嵌入Java代碼來(lái)執(zhí)行特定的功能,其放置在設(shè)%>標(biāo)記中。
格式為:
<%
Java代碼段1
Java代碼段2
%>
這種Java代碼在Web效勞器響應(yīng)懇求時(shí)就會(huì)運(yùn)行。如程序2-3,定義2個(gè)變量并輸出。
2.1.2.3表達(dá)式<%=%>
JSP表達(dá)式可以把JSP頁(yè)面中的數(shù)據(jù)干脆輸出到頁(yè)面,其格式為:
<%=表達(dá)式%>
表達(dá)式一次只能運(yùn)用一個(gè)表達(dá)式,并且該表達(dá)式是完好的。在表達(dá)式的語(yǔ)句中不能運(yùn)用
分號(hào)。如程序2-4,進(jìn)展了變量輸出
這種代碼段的主要功能是輸出一個(gè)變量或常量,有時(shí)候?qū)⑵浣凶霰磉_(dá)式輸出。運(yùn)用方法見程
序2-5所示。
2.1.2.4注釋
在JSP中支持兩種注釋,一種是顯式注釋,這種注釋客戶端允許查看的;另一種是隱式注
釋,這種注釋客戶端是看不到的。
1.顯式注釋語(yǔ)法(HTML注釋)
<!-這是顯式注釋
2.隱式注釋語(yǔ)法
(1)//Java供給的單行注釋
(2)/*Java供給的多行注釋*/
(3)<%--JSP注釋~%>
2.1.3擴(kuò)展——代碼編寫標(biāo)準(zhǔn)
好的代碼應(yīng)當(dāng)簡(jiǎn)潔理解,并且見名知意的,因此大家都需要遵守一些約定,下面介紹一
些常規(guī)的編寫標(biāo)準(zhǔn)。
1.JSP文件命名
JSP文件名稱要以小寫字母命名,名稱要表達(dá)出該頁(yè)面的意義,最好可以與模塊名稱聯(lián)絡(luò)
在一起。
例如:
login.jsp一登錄頁(yè)面
register,jsp一注冊(cè)頁(yè)面
message,jsp一消息頁(yè)面
2.JavaWeb工程文件夾組織標(biāo)準(zhǔn)
JavaWeb工程的書目構(gòu)造為:
src—存放java源文件的文件夾
WebContent-web站點(diǎn)文件存放文件夾
I-images一圖片文件夾
|—css一款式文件夾
|"js—js文件夾
I-……一其他功能模塊文件夾(存放與某個(gè)功能模塊相關(guān)的資源)
I—WEB-INF一網(wǎng)站配置及類和庫(kù)文件夾
I-classes-存放類編譯后的字節(jié)碼文件的文件夾
I—lib—存放jar文件的文件夾
2.2制作一個(gè)帶包含文件的JSP頁(yè)面
2.2.1任務(wù)描繪與實(shí)現(xiàn)
實(shí)現(xiàn)靜態(tài)包含功能,編寫三個(gè)不同類型的文件,然后將這三個(gè)不同類型的文件靜態(tài)包含
于某一JSP文件中
2.2.2新學(xué)問(wèn)點(diǎn)JSP指令:page指令、include指令
JSP指令是為JSP引擎而設(shè)計(jì)的。它們并不干脆產(chǎn)生任何可見的輸出,而只是告知引擎如
何處理其余的JSP頁(yè)面。JSP指令有三種,分別為頁(yè)面設(shè)置指令page、頁(yè)面包含指令include和
標(biāo)記指令taglib。
JSP指令一般語(yǔ)法形式為:
<%?指令名稱屬性="值”%>
1.page指令
page指令就是通過(guò)設(shè)置內(nèi)部的多個(gè)屬性來(lái)定義JSP文件中的全局特性。需要留意的是,
page指令只能對(duì)當(dāng)前自身頁(yè)面進(jìn)展設(shè)置,即每個(gè)頁(yè)面都有自身的page指令。假設(shè)沒(méi)有對(duì)屬性
進(jìn)展設(shè)置,JSP將運(yùn)用默認(rèn)指令屬性值。
2.include指令
在JSP開發(fā)中,可以將一些重用的代碼寫入一個(gè)單獨(dú)的文件中,然后通過(guò)include指令引
用該文件,從而緩解代碼的冗余問(wèn)題,修改也比擬便利。Include指令語(yǔ)法格式為:
<%?includefile="被包含的文件途徑”%>
inlcude也被稱為靜態(tài)包含指令,包含的文件可以是JSP文件、HTML文件、文本文件和Java
程序段。靜態(tài)包含指令只是簡(jiǎn)潔的將內(nèi)容合在一起顯示,所以,在一個(gè)完好的頁(yè)面中,對(duì)于
<html>><head>、<title>>〈body>等元素只能出現(xiàn)一次,假設(shè)重復(fù)出現(xiàn),則會(huì)造成HTML錯(cuò)誤。
在2.2.1節(jié)任務(wù)中,其主要采納include指令完成不同類型文件的包含。
2.2.3擴(kuò)展——taglib指令的運(yùn)用
運(yùn)用<%@taglib%>指令在JSP文件中導(dǎo)入標(biāo)簽,以便在JSP中運(yùn)用標(biāo)簽便利地完成一些動(dòng)
作。
Taglib指令的語(yǔ)法為:
<%@tagliburi="tagLibraryURI"prefix="tagPrefix"%>
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)
2.3.1.1制作一個(gè)簡(jiǎn)潔的JSP網(wǎng)站
制作一個(gè)簡(jiǎn)潔的JSP網(wǎng)站。網(wǎng)站主題為產(chǎn)品網(wǎng)站,主要包括網(wǎng)站首頁(yè)、產(chǎn)品和下載頁(yè)面等,
效果如圖2T0~2T2所示。要求公共部分采納單獨(dú)文件,并被包含。開發(fā)過(guò)程采納Eclipse和
Dreaimveaver搭配開發(fā),設(shè)計(jì)顯示界面部分全部用Dreamweaver實(shí)現(xiàn),JSP程序部分在Eelipse
中編寫,最終在Eelipse中測(cè)試運(yùn)行。
2.3.2新學(xué)問(wèn)點(diǎn)——JSP動(dòng)作指令、<jsp:include>
在JSP中,還存在另外一類標(biāo)記,其符合XML的語(yǔ)法格式。利用這些標(biāo)記可以到達(dá)限制
Servlet引擎的作用,如動(dòng)態(tài)的插入文件,調(diào)用JavaBean,頁(yè)面重定向等,這類標(biāo)記稱為JSP
動(dòng)作標(biāo)記。
JSP的常用動(dòng)作標(biāo)記有<jsp:include>、<jsp:useBean>><jsp:setProperty>,
<jsp:getProperty>、〈jsp:forward〉、<jsp:plugin>><jsp:params〉等。
2.3.3擴(kuò)展--<jsp:forward〉的運(yùn)用
<jsp:forward〉動(dòng)作指令表示把當(dāng)前的頁(yè)面限制權(quán)轉(zhuǎn)向另外一個(gè)對(duì)象,該對(duì)象可以是一個(gè)
HTML文件、JSP文件或者一個(gè)Servlet文件。
<jsp:forward》的語(yǔ)法格式:
<jsp:forwardpage二”轉(zhuǎn)向的文件途徑I<%=表達(dá)式%>”/>
或者
<jsp:forwardpage二”轉(zhuǎn)向的文件途徑|〈斷表達(dá)式%>”>
<jsp:paramname二?paraml?value=?valuel?/>
<jsp:paramname=?param2?value=?value2?/>
</jsp:forward>
在上述格式中,page屬性為一個(gè)字符串或者一個(gè)表達(dá)式,用來(lái)表示轉(zhuǎn)向文件的途徑;
<jsp:param》字句指令為傳遞參數(shù),name指定參數(shù)名,value指定參數(shù)值。
【教學(xué)小結(jié)】
本章主要介紹了JSP頁(yè)面的組成、指令、動(dòng)作等技術(shù),重點(diǎn)介紹了JSP的page指令、include
指令的運(yùn)用,<jsp:include>><jsp:forward)等動(dòng)作指令的運(yùn)用。
通過(guò)本章的學(xué)習(xí),讀者可以建立一個(gè)簡(jiǎn)潔功能的JSP網(wǎng)站。
課題:第三章JSP內(nèi)置對(duì)象
【教學(xué)目的】
駕馭JSP常用內(nèi)置對(duì)象及運(yùn)用方法
【教學(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í)現(xiàn)
3.1.1.1實(shí)現(xiàn)用戶注冊(cè)信息獲得及顯示
編寫用戶注冊(cè)功能,注冊(cè)信息包括用戶名、密碼、性別、E-mail,嫻熟開發(fā)語(yǔ)言,如圖
3T所示,提交后,顯示用戶輸入的數(shù)據(jù)。
為了進(jìn)步開發(fā)效率,開發(fā)過(guò)程采納Eelipse和Dreamweaver搭配開發(fā),設(shè)計(jì)顯示界面部分
全部用Dream出eaver實(shí)現(xiàn),代碼在界面制作自動(dòng)生成根底上在Eelipse中編寫,最終在Eelipse
中測(cè)試運(yùn)行。
3.1.2新學(xué)問(wèn)點(diǎn)——JSP內(nèi)置對(duì)象、request
3.1.2.1JSP內(nèi)置對(duì)象概述
為了簡(jiǎn)化Web頁(yè)面的開發(fā)過(guò)程,JSP供給了一些由容器實(shí)現(xiàn)和管理的對(duì)象,這些對(duì)象在JSP
中可以干脆運(yùn)用,不需要JSP頁(yè)面編寫進(jìn)展實(shí)例化,可以干脆運(yùn)用,此類對(duì)象稱之為JSP的內(nèi)
置對(duì)象。
JSP中標(biāo)準(zhǔn)定義了9個(gè)內(nèi)置對(duì)象,分別是request、response>session、application,out>
page、pageContext和exception。其說(shuō)明見表3T。
表3-1JSP內(nèi)置對(duì)象對(duì)象所屬類說(shuō)明
requestjavax.servlet..封裝了客戶端的懇求信息
ServletRequest
responsejavax.servlet..包含了響應(yīng)客戶懇求的相關(guān)信息
ServletResponse
sessionjavax.servlet..與當(dāng)前懇求相關(guān)的會(huì)話
Session
applicationjavax.servlet.ServletContext存放全局變量,實(shí)現(xiàn)用戶間的數(shù)據(jù)
共享
outjavax.servlet,jsp.JspWriter向客戶端輸出數(shù)據(jù)的對(duì)象
pagejava.lang.Object指當(dāng)前JSP頁(yè)面本身,作用類似于
this
pageContextjavax.servlet,jsp.PageContext供給了對(duì)JSP頁(yè)面內(nèi)全部的對(duì)象及
名字空間的訪問(wèn)
configjavax.servlet.servletConfigServlet初始化時(shí),向其傳遞配置
參數(shù)的對(duì)象
exceptionjava.lang.Throwable頁(yè)面運(yùn)行中發(fā)生異樣而產(chǎn)生的對(duì)
象
3.1.3擴(kuò)展——中文亂碼處理、request中其他信息獲得
3.1.3.1獲得顯示含有中文的信息
客戶端提交數(shù)據(jù)當(dāng)含有中文時(shí),JSP不能正常顯示。如將3.1.1.1節(jié)的表單增加個(gè)人簡(jiǎn)介
后,程序?yàn)閑xam31reg2.jsp,此處略,運(yùn)行效果如圖3-6,其提交后顯示會(huì)是亂碼,如圖
3-7所示。因此,要對(duì)含有中文的表單數(shù)據(jù),要進(jìn)展編碼設(shè)置。其主要方法為在獲得程序中設(shè)
置字符集,使request其字符集與頁(yè)面字符集保持一樣。
3.1.3.2獲得客戶端懇求的相關(guān)信息
ServletRequest包含很多可以獲得與當(dāng)前懇求相關(guān)信息的方法,具體可查看API文檔,下
面的例子將展示其中一部分方法的運(yùn)用,exam3_l_request.jsp是提交懇求的頁(yè)面,
exam3_l_showlnfo.jsp是處理懇求的頁(yè)面,在此頁(yè)面中將調(diào)用request對(duì)象的各種方法,以獲
得與當(dāng)前懇求相關(guān)的一些信息。
3.2處理效勞器響應(yīng)
3.2.1任務(wù)描繪與實(shí)現(xiàn)
3.2.1.1實(shí)現(xiàn)四則運(yùn)算測(cè)試功能
針對(duì)剛學(xué)會(huì)整數(shù)四則運(yùn)算的小學(xué)生,開發(fā)一個(gè)測(cè)試網(wǎng)站。要求在測(cè)試頁(yè)面中能隨機(jī)產(chǎn)生
一個(gè)四則運(yùn)算式,當(dāng)用戶在userAnswer表單域內(nèi)填寫答案并提交后,獲得用戶所填的答案,
推斷答案的對(duì)錯(cuò)后,假設(shè)錯(cuò)誤則進(jìn)入錯(cuò)誤提示頁(yè)面:假設(shè)正確則進(jìn)入正確頁(yè)面
3.2.2新學(xué)問(wèn)點(diǎn)response,out
3.2.2.1response
JSP的內(nèi)置對(duì)象response代表效勞器端返回給客戶端的相應(yīng),其主要用于處理響應(yīng)數(shù)據(jù)。
該對(duì)象的方法主要包括處理響應(yīng)頭的相關(guān)屬性的方法、設(shè)定響應(yīng)狀態(tài)碼的方法、重定向方法、
設(shè)置響應(yīng)體相關(guān)內(nèi)容和屬性的方法等等。其常用方法見表3-3所示。
表3-3response對(duì)象的常用方法方法說(shuō)明
voidsetHeader(Stringname,Stringvalue)為名為name的響應(yīng)頭設(shè)定值為value
ooleancontainsHeader(Stringname)推斷響應(yīng)對(duì)象中是否出名為name的頭
voidaddCookie(Cookiecookie)將參數(shù)指定的cookie添加到response對(duì)
象中
voidsendRedirect(Stringlocation)將頁(yè)面重定向到參數(shù)所指定的URL
voidsetContentType(Stringtype)設(shè)置響應(yīng)的MIME類型
PrintWritergetWriter()得到返回客戶端的打印流
3.2.2.2out對(duì)象
out對(duì)象是javax.servlet.jsp.JspWriter類的實(shí)例,表示一個(gè)輸出流,用于向客戶端輸出數(shù)
據(jù)。查閱API文檔可知,JspWriter對(duì)象和由ServletResponse的getWriter()方法得到的
Printwriter對(duì)象是有依靠關(guān)系的。假設(shè)頁(yè)面沒(méi)有緩沖區(qū),那么寫入JspWriter對(duì)象的數(shù)據(jù)將
干脆通過(guò)PrintWriter對(duì)象進(jìn)展輸出;假設(shè)頁(yè)面有緩沖區(qū),則直到緩沖區(qū)滿且如
setContentType()等操作都合法時(shí)才創(chuàng)立PrintWriter對(duì)象,由PrintWrtier對(duì)象進(jìn)展輸出。
3.2.3擴(kuò)展——設(shè)置響應(yīng)的MIME類型
任務(wù):將一個(gè)文本文件包含在jsp頁(yè)面中,且在顯示頁(yè)面內(nèi)容之前先讓用戶選擇查看文件
所運(yùn)用的方式,將三種可選方式(文本方式、網(wǎng)頁(yè)方式、word文檔方式)放在下拉框中供用
戶選擇。當(dāng)用戶選擇并點(diǎn)擊“查看按鈕”后,按用戶所選方式呈現(xiàn)內(nèi)容。
3.3存儲(chǔ)用戶會(huì)話
3.3.1任務(wù)描繪與實(shí)現(xiàn)
3.3.1.1推斷用戶是否已登錄
實(shí)現(xiàn)如下功能:用戶勝利登錄后,只要未關(guān)閉閱讀器的狀況下,可隨時(shí)訪問(wèn)本站點(diǎn)的任
何頁(yè)面(當(dāng)然此處本站點(diǎn)只有登錄頁(yè)面和歡送頁(yè)面),假設(shè)用戶在未登錄的狀況下訪問(wèn)歡送
頁(yè)面的話,給出相應(yīng)的提示,并在5秒后跳轉(zhuǎn)到登錄頁(yè)面。
實(shí)現(xiàn):當(dāng)用戶在登錄頁(yè)面(exam3_3」ogin.jsp)輸入用戶名和密碼并點(diǎn)擊登錄后,在處
理頁(yè)面exam3_3_login_do.jsp(代碼如程序3T2所示)中推斷用戶名和密碼是否正確,假設(shè)
正確,即登錄勝利,則將名為“username”,值為用戶所輸入的用戶名的屬性添加到session
對(duì)象中,然后進(jìn)入exam3_3_welcome.jsp(代碼如程序3T3所示)中;假設(shè)用戶名或密碼不正
確,則輸出提示“用戶名或密碼不正確,5秒后為您跳轉(zhuǎn)回登錄頁(yè)面”,并在5秒后跳轉(zhuǎn)回登
錄頁(yè)面。假設(shè)用戶沒(méi)有登錄,而干脆訪問(wèn)exam3_3_welcome.jsp,則輸出提示“您必需先登錄,
5秒后為您跳轉(zhuǎn)回登錄頁(yè)面”,并在5秒后跳轉(zhuǎn)回登錄頁(yè)面。
3.3.2新學(xué)問(wèn)點(diǎn)session、aplication
3.3.2.1session
session(會(huì)話)是用來(lái)在訪問(wèn)一個(gè)網(wǎng)站時(shí)發(fā)出的多個(gè)頁(yè)面懇求或者在屢次頁(yè)面跳轉(zhuǎn)之間
識(shí)別同一個(gè)用戶并且存儲(chǔ)這個(gè)用戶的相關(guān)信息的一種方式。通常從一個(gè)客戶連接到某個(gè)效勞
器開場(chǎng),直到他關(guān)閉閱讀器分開這個(gè)效勞器為止,稱之為一次會(huì)話。Servlet容器運(yùn)用
javax.servlet..Session這個(gè)接口在客戶端和效勞器端之間創(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è)面連接和懇求之間共享數(shù)
據(jù)。效勞器通常通過(guò)cookie或者重寫URL的方式來(lái)維持session,不過(guò)開發(fā)者無(wú)需關(guān)切這些細(xì)
微環(huán)節(jié)。
Session接口的方法主要分為兩類,一類是查看和操作關(guān)于這個(gè)session的信息的方
法,如session的ID、創(chuàng)立時(shí)間、最近訪問(wèn)時(shí)間等;另一類方法是將對(duì)象綁定到session中,
以可以運(yùn)用戶信息在客戶端與效勞器端的屢次連接中可以共享。
3.3.2.2application
JSP內(nèi)置的app]ication對(duì)象是javax.servlet.ServletContext類的一*個(gè)實(shí)例,可以通過(guò)
它和Servlet容器進(jìn)展通信,如獲得一個(gè)文件的MIME類型,轉(zhuǎn)發(fā)懇求,寫日志文件等等;也可
以通過(guò)它共享一些全局信息。
Application對(duì)象表示Servlet的上下文,每臺(tái)Java虛擬機(jī)上的同一個(gè)Web應(yīng)用只有一個(gè)上
下文,即當(dāng)Web應(yīng)用被部署到效勞器上,效勞器啟動(dòng)時(shí)就創(chuàng)立一個(gè)application對(duì)象,全部訪
問(wèn)該應(yīng)用的客戶都共享同一個(gè)application對(duì)象,直到效勞器關(guān)閉。因此可以通過(guò)將一些信息
放在application對(duì)象里,以實(shí)現(xiàn)全局共享,當(dāng)然要留意這個(gè)“全局”只是相對(duì)的,因?yàn)椴煌?/p>
的Java虛擬機(jī)上的Servlet上下文也是不同的。
3.3.3擴(kuò)展cookie
3.3.3.1記錄用戶以往訪問(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)運(yùn)用過(guò)的用戶名。
實(shí)現(xiàn)過(guò)程:這樣的功能一般都是基于cookie實(shí)現(xiàn)的。首先創(chuàng)立一個(gè)web應(yīng)用,當(dāng)用戶訪問(wèn)
本網(wǎng)站的登錄頁(yè)面exam3_3_c。okie」ogin.jsp(代碼如程序3T7所示)時(shí),該頁(yè)面讀取客戶
端的cookie,假設(shè)cookie中存在username記錄,則在登錄表單的用戶名一欄中自動(dòng)填入該
username值。當(dāng)用戶勝利登錄后,將該username存入cookie中。
3.3.3.2學(xué)問(wèn)點(diǎn):Cookie簡(jiǎn)介
Cookie是Web效勞器發(fā)送給客戶端的一小段信息。假設(shè)效勞器需要在客戶端記錄某些數(shù)
據(jù)時(shí),就可以向客戶端發(fā)送Cookie,客戶端接收并保存該Cookie,而且客戶端每次訪問(wèn)該效
勞器上的頁(yè)面時(shí)就會(huì)將Cookie隨懇求數(shù)據(jù)一同發(fā)送給效勞器。下面從向客戶端發(fā)送Cookie
以及從客戶端讀取Cookie兩方面來(lái)介紹Cookie的運(yùn)用方法。
L向客戶端發(fā)送Cookie
首先需要?jiǎng)?chuàng)立Cookie對(duì)象:Cookiec=newCookie(ucookieName,“cooki先alue");
然后需要調(diào)用setMaxAge(longtime)為Cookie對(duì)象設(shè)置有效時(shí)間(該時(shí)間參數(shù)以秒為單位),
不然閱讀器關(guān)閉時(shí)Cookie就會(huì)被刪除;最終運(yùn)用ServletResponse對(duì)象的
addCookie(Cookiec)方法把Cookie對(duì)象添加到響應(yīng)頭中發(fā)送到客戶端。
2.從客戶端讀取Cookie
首先獲得客戶端上傳的Cookie數(shù)組:調(diào)用ServeltRequest對(duì)象的getCookies()得到
一個(gè)Cookie對(duì)象的數(shù)組;然后遍歷該數(shù)組,找尋需要的Cookie對(duì)象:通過(guò)Cookie的getNameO
方法,獲得Cookie對(duì)象的name屬性,通過(guò)getValueO方法獲得Cookie對(duì)象的值。
【教學(xué)小結(jié)】
本章介紹了JSP的各個(gè)內(nèi)置對(duì)象,并著重講解了request>response、session、
application,out這幾個(gè)最常用的對(duì)象,這些對(duì)象在JSP開發(fā)中具有很重要的地位,盼望讀
者可以結(jié)合本章任務(wù)理解這些對(duì)象,并可以駕馭其用法。對(duì)于其它未詳解的對(duì)象,可參考相
關(guān)的API文檔。
課題:第四章JDBC與數(shù)據(jù)庫(kù)應(yīng)用
【教學(xué)目的】
駕馭通過(guò)JDBC連接數(shù)據(jù)庫(kù)并進(jìn)展數(shù)據(jù)操作的方法
【教學(xué)重點(diǎn)】
連接數(shù)據(jù)庫(kù)和讀取數(shù)據(jù)庫(kù)、寫入數(shù)據(jù)庫(kù)
【教學(xué)難點(diǎn)】
連接數(shù)據(jù)庫(kù)和讀取數(shù)據(jù)庫(kù)、寫入數(shù)據(jù)庫(kù)
【教學(xué)方法】講解、演示
【教學(xué)地點(diǎn)】教學(xué)樓、綜合樓
【課時(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ù),并以表格形式
顯示,如表4T所示。Users表的構(gòu)造如表4T所示。
表4-1任務(wù)執(zhí)行結(jié)果用戶名密碼性別Email嫻熟開發(fā)語(yǔ)
言
leiyanrui123456femaleJAVA,C,C#
??????….??.??
4.1.2新學(xué)問(wèn)點(diǎn)——JDBC概述、JDBC連接Mysql數(shù)據(jù)庫(kù)
4.1.2.1JDBC簡(jiǎn)介
JDBC的英文名稱是JavaDatabaseConnecivity,中文名稱是Java數(shù)據(jù)庫(kù)連接,它是一種
用于執(zhí)行SQL語(yǔ)句的JavaAPI類包,由一組用Java語(yǔ)言編寫的類和接口組成,通過(guò)它可以構(gòu)建
更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員可以用純JavaAPI編寫數(shù)據(jù)庫(kù)應(yīng)用程序。
JDBC是Java操作數(shù)據(jù)庫(kù)的方法,由SUN供給。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就
是一件很簡(jiǎn)潔的事。換言之,有了JDBCAPI,就不必為訪問(wèn)MySQL數(shù)據(jù)庫(kù)特地寫一個(gè)程序,為
訪問(wèn)Oracle數(shù)據(jù)庫(kù)又特地寫一個(gè)程序。運(yùn)用JDBCAPI,程序員只需用JDBCAPI寫一個(gè)程序就
夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用,這和Microsoft的ODBC技術(shù)是類似的,ODBC是由
Microsoft公司提倡并得到業(yè)界普遍響應(yīng)的數(shù)據(jù)庫(kù)連接技術(shù),通過(guò)它可以運(yùn)用一組通用的接口
與各種數(shù)據(jù)庫(kù)進(jìn)展連接,但這僅限于Windows平臺(tái);而JDBC不同,運(yùn)用Java編寫的應(yīng)用程序可
以在任何支持Java的平臺(tái)上運(yùn)行,程序員甚至不必在不同的平臺(tái)上編寫不同的應(yīng)用。這也是
Java語(yǔ)言”編寫一次,到處運(yùn)行”的優(yōu)勢(shì)。
4.1.2.2Mysql數(shù)據(jù)庫(kù)簡(jiǎn)介
MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16
日被Sun公司收買。2009年,Sun又被Oracle收買。目前MySQL被廣泛地應(yīng)用在Internet上的中
小型網(wǎng)站中。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點(diǎn)受到了眾
多中小型網(wǎng)站制作者的青睞。MySQL的開發(fā)也得到了很多聞名廠商和技術(shù)團(tuán)隊(duì)支持。
4.1.2.3JDBC連接Mysql數(shù)據(jù)庫(kù)的根本步驟
1.下載驅(qū)動(dòng)。要通過(guò)JDBC連接數(shù)據(jù)庫(kù)需要運(yùn)用數(shù)據(jù)庫(kù)廠商供給的JDBCDriveo在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.L17為驅(qū)動(dòng)版本號(hào)),復(fù)制到當(dāng)前工
程的WEB-INF的lib書目中,如圖4-3、圖4-4所示。3.編寫數(shù)據(jù)庫(kù)連接程序。
(1)加載驅(qū)動(dòng)。
Class.forName(ucom.mysql.jdbc.Driver").newlnstance();
(2)建立連接對(duì)象。
Stringurl="jdbc:mysql:〃localhost:3306/hncst”;〃連接字符串Connection
conn=DriverManager.getConnection(url);
(3)建立Statement對(duì)象或PreparedStatement對(duì)象。
Statementstmt=conn.createStatement();//^JALStatement對(duì)象Stringsql="select*
fromuserswhereoolean=Andpassword=";PreparedStatement
pstmt=conn.prepareStatement(sql);//倉(cāng)4立Preparedment對(duì)象
pstmt.setString(l,"admin”);pstmt.setString(2,"liubin");
Statement是PreparedStatement的父接口。Statement對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)潔SQL
語(yǔ)句;PreparedStatement對(duì)象用于執(zhí)行預(yù)編譯SQL語(yǔ)句;也就是說(shuō),Statement接口供給了
根本方法,而PreparedStatem6nt接口添加了處理IN參數(shù)的方法。對(duì)于需屢次執(zhí)行的SQL語(yǔ)
句,用PreparedStatement即可以減輕編碼負(fù)擔(dān),又可以進(jìn)步系統(tǒng)效率。
(4)執(zhí)行SQL語(yǔ)句。
執(zhí)行SQL查詢O1
Stringsql="select*fromusers”;
ResultSetrs=stmt.executeQuery(sql);
執(zhí)行insert,update,delete等語(yǔ)句,先定義sql02
stmt.executeUpdate(sql);
Statement接口供給了三種執(zhí)行SQL語(yǔ)句的方法:executeQueryexecuteUpdate和
executeo運(yùn)用哪一個(gè)方法由SQL語(yǔ)句所產(chǎn)生的內(nèi)容確定。
(5)關(guān)閉對(duì)象,釋放資源。
Rs.close();
stmt.closeO;
conn,close();
通過(guò)上面五個(gè)步驟,就可以完成JDBC連接數(shù)據(jù)庫(kù),執(zhí)行SQL語(yǔ)句,并在執(zhí)行完后釋放數(shù)據(jù)庫(kù)資
源。
4.1.3擴(kuò)展--JDBC連接SQLServer、Oracle
4.1.3.1JDBC連接SQLServer
SQLServer是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。SQLServer運(yùn)用集成的商業(yè)智能工具供給企
業(yè)級(jí)的數(shù)據(jù)管理,可以為不同規(guī)模的企業(yè)供給不同的數(shù)據(jù)管理解決方案。下邊以SQL
Server2005為例,介紹JDBC連接SQLServer數(shù)據(jù)庫(kù)。
實(shí)現(xiàn)過(guò)程:
通過(guò)JDBC連接SQLServer的hncst數(shù)據(jù)庫(kù),實(shí)例文件為exam4_2_sqlserver.jsp,具體步
驟如下:
1.在MicrosoftSQLServer的官網(wǎng)下載SQLServerJDBC驅(qū)動(dòng)(不同版本的數(shù)據(jù)庫(kù)對(duì)應(yīng)不
同驅(qū)動(dòng)程序)。將下載好的驅(qū)動(dòng)sqljdbc.jar文件復(fù)制到網(wǎng)站的lib書目中。
2.將SQLServer的驗(yàn)證方式改為混合驗(yàn)證方式,并設(shè)置合法用戶名和密碼。翻開MicrosoftSQL
ServerManagementStudioExpress,通過(guò)右鍵點(diǎn)擊數(shù)據(jù)庫(kù)“效勞器屬性"面板,在"平安”
選項(xiàng)里進(jìn)展配置,重啟SQLServer后生效,
4.1.3.2JDBC連接Oracle
與JDBC連接Mysql、SQLServer類似,需要先下載Oracle數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng),并將其放置
在網(wǎng)站的lib書目下。在此不再具體描繪。其次,創(chuàng)立連接文件JDBCOracleConnection.jsp,
代碼如程序4-3所示。
4.2寫入數(shù)據(jù)庫(kù)
4.2.1任務(wù)描繪與實(shí)現(xiàn)
編寫程序完成用戶注冊(cè)功能,即通過(guò)JDBC連接數(shù)據(jù)庫(kù),并向users表中添加一條新記錄。
注冊(cè)的資料包含姓名、密碼、性別、嫻熟開發(fā)語(yǔ)言、個(gè)人簡(jiǎn)介。
4.2.2新學(xué)問(wèn)點(diǎn)Connection、Statement、ResultSet等對(duì)象的常用方法
在Java語(yǔ)言中供給了豐富的類和接口用于數(shù)據(jù)庫(kù)編程,利用它們可以便利地進(jìn)展數(shù)據(jù)的
訪問(wèn)和處理。下面主要介紹Java.sql包中供給的常用類和接口。1.Driver接口
每個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序必需實(shí)現(xiàn)Driver接口,對(duì)于JSP開發(fā)者來(lái)說(shuō)只要運(yùn)用Driver接口就可
以了。在編程中要連接數(shù)據(jù)庫(kù)必需要裝載特定的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序(Driver),格式如下:
Class.forName(“數(shù)據(jù)庫(kù)商供給的驅(qū)動(dòng)程序名稱”);
在運(yùn)用Class.forName之前,應(yīng)先運(yùn)用Import語(yǔ)句導(dǎo)入java,sql包,即
在Java源程序中為:importjava.sql.*;
在JSP程序中為:<%?pageimport="java.sql.*"%>
2.DriverManager接口
java.sql.DriverManager類負(fù)責(zé)管理JDBC驅(qū)動(dòng)程序的根本效勞,是JDBC的管理層,作用
于用戶和驅(qū)動(dòng)程序之間,用來(lái)管理數(shù)據(jù)庫(kù)中的全部驅(qū)動(dòng)程序。它可以跟蹤可用的驅(qū)動(dòng)程序,
注冊(cè)、注銷以及為數(shù)據(jù)庫(kù)連接適宜的驅(qū)動(dòng)程序,設(shè)置登錄時(shí)間限制等。
4.Statement接口
Statement接口用于在已經(jīng)建立連接的根底上向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句。Statement接口中包
含了執(zhí)行SQL語(yǔ)句和獲得返回結(jié)果的方法。
在JDBC中有3種Statement對(duì)象:Statement,PreparedStatement和CallableStatemento
Statement對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)潔SQL語(yǔ)句;PreparedStatement繼承了Statement,用
于處理需要被屢次執(zhí)行的SQL語(yǔ)句;CallableStatement繼承了PreparedStatement,用于執(zhí)行
對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程的調(diào)用。5.PreparedStatement接口
PreparedStatement接口繼承Statement,包含己經(jīng)編譯的SQL語(yǔ)句。這就是使語(yǔ)句“打算
好”,所以它的執(zhí)行速度要高于Statement對(duì)象。因此,將屢次執(zhí)行的SQL語(yǔ)句創(chuàng)立為
PreparedStatement對(duì)象,可以進(jìn)步效率。
6.ResultSet接口
ResultSet接口用來(lái)短暫存放數(shù)據(jù)庫(kù)查詢操作所獲得的結(jié)果。ResultSet接口中包含了一系列
get方法,用來(lái)對(duì)結(jié)果集中的數(shù)據(jù)進(jìn)展訪問(wèn)。
4.2.3擴(kuò)展
數(shù)據(jù)庫(kù)連接是JDBC數(shù)據(jù)庫(kù)應(yīng)用程序中最為耗時(shí)的一個(gè)部分。效勞器的資源有限,程序假
設(shè)始終保持?jǐn)?shù)據(jù)庫(kù)的連接狀態(tài),就會(huì)消耗數(shù)據(jù)庫(kù)效勞器的資源,影響效勞器的正常響應(yīng)。在
部分狀況下JSP也會(huì)自動(dòng)關(guān)閉數(shù)據(jù)庫(kù)連接進(jìn)而釋放資源,例如在一個(gè)方法或一個(gè)類的內(nèi)部創(chuàng)
立數(shù)據(jù)庫(kù)連接,當(dāng)這個(gè)方法或類運(yùn)行完畢時(shí),JSP將會(huì)自動(dòng)的回收資源,并不需運(yùn)用close方
法主動(dòng)釋放資源。但在實(shí)際應(yīng)用中,JDBC連接數(shù)據(jù)庫(kù)通常會(huì)運(yùn)用servlet(見第五章),而
servlet會(huì)始終保持在效勞器內(nèi),servlet的數(shù)據(jù)庫(kù)連接也會(huì)始終保存在效勞器內(nèi),所以為了
削減消耗效勞器資源,應(yīng)當(dāng)習(xí)慣在方法或類中創(chuàng)立數(shù)據(jù)庫(kù)連接,并通過(guò)close方法主動(dòng)關(guān)閉
數(shù)據(jù)庫(kù)連接。
4.3.2新學(xué)問(wèn)點(diǎn)一一分頁(yè)
假設(shè)要顯示的數(shù)據(jù)太多,在一個(gè)頁(yè)面上顯示不僅會(huì)運(yùn)用戶難以閱讀,更加會(huì)影響程序的
運(yùn)行,加重效勞器的負(fù)擔(dān),解決的途徑就是對(duì)記錄進(jìn)展分頁(yè)顯示。
分頁(yè)的方法有很多種,下面我們介紹一種最簡(jiǎn)潔最簡(jiǎn)潔理解的:通過(guò)前面的學(xué)習(xí),我們
可以通過(guò)RecordSet對(duì)象的方法,獲得記錄集中的記錄條數(shù),已知每頁(yè)顯示的記錄個(gè)數(shù),可以
很簡(jiǎn)潔的計(jì)算出分頁(yè)的頁(yè)數(shù),頁(yè)數(shù)等于記錄條數(shù)除以每頁(yè)記錄條數(shù),再將結(jié)果向上取整,即
頁(yè)數(shù)=總記錄條數(shù)/每頁(yè)記錄數(shù);當(dāng)前頁(yè)顯示的記錄可以通過(guò)SQL中Select語(yǔ)句的Limit來(lái)限定,
己知當(dāng)前頁(yè)碼,則顯示記錄的起始位置為(當(dāng)前頁(yè)碼T)*每頁(yè)記錄數(shù),以MYSQL為例,構(gòu)造
出的SQL語(yǔ)句為:Select*fromuserslimit(當(dāng)前頁(yè)碼T)*每頁(yè)記錄數(shù),每頁(yè)記錄數(shù)。
分頁(yè)只顯示符合要求的部分記錄,所以肯定要設(shè)計(jì)翻頁(yè)連接扶植用戶翻頁(yè)閱讀,常用的
翻頁(yè)連接有首頁(yè)、尾頁(yè)、上一頁(yè)和下一頁(yè),首頁(yè)即頁(yè)碼為1的頁(yè)面,尾頁(yè)即頁(yè)碼為總頁(yè)數(shù)的頁(yè)
面,上一頁(yè)即頁(yè)碼為當(dāng)前頁(yè)減1的頁(yè)面,下一頁(yè)即頁(yè)碼為當(dāng)前頁(yè)加1的頁(yè)面,根據(jù)這些設(shè)置超
連接進(jìn)展翻頁(yè)。
SQLServer的SQL語(yǔ)句沒(méi)有Limit關(guān)鍵字,假設(shè)要對(duì)SQLServer中的數(shù)據(jù)表進(jìn)展分頁(yè)就
要利用T_SQL中的top和notin語(yǔ)句,top關(guān)鍵字用來(lái)指定返回結(jié)果集的前n行,很簡(jiǎn)潔理
解,第一頁(yè)就是selecttop每頁(yè)記錄數(shù)fromusers,第二頁(yè)selecttop2*每頁(yè)記錄數(shù)from
user,結(jié)果是前兩頁(yè)的記錄,然后要將第一頁(yè)的記錄從記錄集中剔除,運(yùn)用notin,即select
top2*每頁(yè)記錄數(shù)fromuserswhereidnotin(selecttop每頁(yè)記錄數(shù)idfromusers)。
則當(dāng)前頁(yè)的分頁(yè)SQL語(yǔ)句為selecttop當(dāng)前頁(yè)*每頁(yè)記錄數(shù)*fromuserswhere
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 充裝單位安全檢查記錄表
- 化學(xué)礦的物流與倉(cāng)儲(chǔ)管理和運(yùn)作優(yōu)化考核試卷
- 林業(yè)與農(nóng)民合作社發(fā)展考核試卷
- 建筑裝飾與建筑智能化管理考核試卷
- 智能家居項(xiàng)目報(bào)名表
- 醫(yī)療設(shè)備采購(gòu)招標(biāo)代理機(jī)構(gòu)遴選
- 農(nóng)產(chǎn)品供應(yīng)鏈簽約管理辦法
- 建筑抗震加固合同范本
- 建筑幕墻BT施工合同
- 教育科技創(chuàng)新貸款保證制度
- 提升員工參與度的方法與技巧
- 九年級(jí)Unit9大單元教學(xué)設(shè)計(jì)
- 《水字演變及成語(yǔ)》課件
- 山東省汽車維修工時(shí)定額(T-SDAMTIA 0001-2023)
- 電腦故障檢測(cè)報(bào)告
- 春節(jié)期間的傳統(tǒng)煙花和焰火表演
- 綠植花卉租擺及園林養(yǎng)護(hù)服務(wù) 投標(biāo)方案(技術(shù)方案)
- 2023年6月天津高考英語(yǔ)第二次試卷真題重點(diǎn)詞匯清單
- 會(huì)展概論-來(lái)逢波-習(xí)題答案
- 廣東小學(xué)生詩(shī)詞大賽備考試題庫(kù)400題(三四年級(jí)適用)
- 排煙機(jī)房管理制度
評(píng)論
0/150
提交評(píng)論