Javaweb程序設(shè)計(jì)教案_第1頁(yè)
Javaweb程序設(shè)計(jì)教案_第2頁(yè)
Javaweb程序設(shè)計(jì)教案_第3頁(yè)
Javaweb程序設(shè)計(jì)教案_第4頁(yè)
Javaweb程序設(shè)計(jì)教案_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論