




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