本書詳細(xì)地介紹了實(shí)現(xiàn)一個(gè)Java Web項(xiàng)目所必需的技術(shù),主要包括前端技術(shù)、后端技術(shù)和架構(gòu)技術(shù)。全書共9章分為5個(gè)部分,第1部分概括性地介紹Java Web項(xiàng)目所需技術(shù)、架構(gòu)和集成化編程環(huán)境;第2部分介紹HTML、CSS、JavaScript、JQuery等前端編程技術(shù);第3部分介紹控制器Servlet技術(shù)、動(dòng)態(tài)網(wǎng)頁(yè)JSP技術(shù)、組件JavaBean技術(shù)、數(shù)據(jù)庫(kù)訪問JDBC技術(shù)、持久化框架Hibernate等后端技術(shù);第4部分介紹Java Web的分層架構(gòu)、設(shè)計(jì)模式和MVC框架技術(shù)Struts 2;第5部分詳細(xì)描述了一個(gè)完整的基于MVC的電子商務(wù)系統(tǒng)的項(xiàng)目案例。本書附有實(shí)驗(yàn)指導(dǎo)及習(xí)題,并提供配套的例題、案例、項(xiàng)目源碼、PPT和演示視頻等電子資料。
全書圍繞項(xiàng)目主線組織內(nèi)容,將理論和實(shí)踐有機(jī)結(jié)合,充分體現(xiàn)了項(xiàng)目驅(qū)動(dòng)、案例教學(xué)、理論實(shí)踐一體化的教學(xué)方法。書中的教學(xué)案例和章后的實(shí)驗(yàn)指導(dǎo)的設(shè)計(jì)按照層層遞進(jìn)、逐步深入的方式推進(jìn),*后形成了兩個(gè)獨(dú)立的Web項(xiàng)目。
本書可作為計(jì)算機(jī)、軟件工程、信息管理等相關(guān)專業(yè)的教材,也適合作為Java Web編程技術(shù)的培訓(xùn)教材。
《Java Web編程技術(shù)(高等院校信息技術(shù)規(guī)劃教材)》由年年授課獲質(zhì)量?jī)?yōu)秀獎(jiǎng)的教師精心編寫,以向面就業(yè)、項(xiàng)目驅(qū)動(dòng)、案例教學(xué)、理論實(shí)踐一體化為理念,圍繞一個(gè)MVC Web項(xiàng)目所需的知識(shí)來組織內(nèi)容,包括前端技術(shù)、后端技術(shù)和架構(gòu)技術(shù)。本書在每一章后面附有實(shí)驗(yàn)指導(dǎo),并提供了配套的例題、案例、項(xiàng)目源代碼、PPT和演示視頻等電子資源。
序言
Java Web編程技術(shù)是目前最流行的編程技術(shù),也是計(jì)算機(jī)、軟件工程、信息管理等專業(yè)的專業(yè)核心課程之一。Web應(yīng)用開發(fā)又稱為互聯(lián)網(wǎng)應(yīng)用開發(fā),可分為前端開發(fā)、后端開發(fā)和數(shù)據(jù)庫(kù)開發(fā),涉及的技術(shù)比較多。前端開發(fā)技術(shù)主要有HTML、CSS、JavaScript、JQuery、JSON等,后端開發(fā)技術(shù)主要有控制器Servlet技術(shù)、動(dòng)態(tài)網(wǎng)頁(yè)JSP技術(shù)、組件JavaBean技術(shù)、數(shù)據(jù)庫(kù)訪問JDBC技術(shù)、持久化框架Hibernate等。在企業(yè)級(jí)Java Web開發(fā)中還涉及到架構(gòu)的設(shè)計(jì)、設(shè)計(jì)模式等知識(shí),MVC設(shè)計(jì)模式已成為工程事實(shí)標(biāo)準(zhǔn),Struts 2框架是MVC最流行的框架技術(shù)。完成一個(gè)Web項(xiàng)目需要多門課程的知識(shí),如Java語言程序設(shè)計(jì)、信息系統(tǒng)分析與設(shè)計(jì)、軟件工程、數(shù)據(jù)庫(kù)原理、網(wǎng)站設(shè)計(jì)等,因此Web程序設(shè)計(jì)是一門綜合性、實(shí)踐性非常強(qiáng)的課程,充分體現(xiàn)了編程能力、創(chuàng)新能力和綜合知識(shí)運(yùn)用能力,是畢業(yè)設(shè)計(jì)、就業(yè)、創(chuàng)新創(chuàng)業(yè)的重要利器。市場(chǎng)上關(guān)于Web程序設(shè)計(jì)的書籍很多,但真正能突出實(shí)踐和實(shí)用性的不多,為此,我們?cè)诙嗄杲虒W(xué)實(shí)踐和教學(xué)改革的基礎(chǔ)上編寫了本教材。2. 本書指導(dǎo)思想及特色 本書采用面向就業(yè)、項(xiàng)目驅(qū)動(dòng)、案例教學(xué)、理論與實(shí)踐融為一體的原則對(duì)內(nèi)容進(jìn)行了合理編排,重點(diǎn)突出了課程的綜合性和實(shí)踐性。全書以實(shí)現(xiàn)Java工程師、Web工程師、前端開發(fā)工程師、Java后端開發(fā)工程師等崗位的要求為培養(yǎng)目標(biāo),以基于MVC的Web項(xiàng)目為主線,貼近工程、注重實(shí)踐,融教、學(xué)、做為一體。本書介紹的內(nèi)容均是主流的技術(shù)、框架、思想和工具,可與實(shí)際工程無縫對(duì)接。本書采用項(xiàng)目驅(qū)動(dòng)和案例教學(xué)方式,通過三個(gè)獨(dú)立的項(xiàng)目完成主要知識(shí)體系的學(xué)習(xí),主要特點(diǎn)如下:(1) 教學(xué)知識(shí)體系圍繞用戶管理系統(tǒng)展開,從項(xiàng)目的搭建,前端靜態(tài)網(wǎng)頁(yè)設(shè)計(jì)(HTML、CSS),表單JS驗(yàn)證,登錄權(quán)限系統(tǒng)(Servlet),動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)(JSP),用戶實(shí)體Bean和用戶管理業(yè)務(wù)Bean的編寫,用戶管理的增、刪、改、查等數(shù)據(jù)庫(kù)操作(JDBC和Hibernate)和MVC架構(gòu)設(shè)計(jì)(MVC和Struts 2)等方面來介紹所需的知識(shí)和演示操作。(2) 實(shí)驗(yàn)指導(dǎo)環(huán)節(jié)圍繞新聞/信息發(fā)布系統(tǒng)來展開,包括編程環(huán)境搭建,前臺(tái)三個(gè)靜態(tài)模板編寫(主頁(yè)模板、欄目模板、內(nèi)容模板),登錄權(quán)限控制,動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)(靜態(tài)模板改動(dòng)態(tài)網(wǎng)頁(yè) 信息發(fā)布頁(yè)面),登錄控制器的映射,新聞/信息實(shí)體Bean,新聞/信息業(yè)務(wù)Bean,動(dòng)態(tài)驗(yàn)證碼,上傳下載功能,信息/新聞管理的增、刪、改、查數(shù)據(jù)庫(kù)操作,MVC架構(gòu)等,最終完成一個(gè)完整的信息/新聞發(fā)布系統(tǒng)。(3) 最后一章通過一個(gè)完整的誠(chéng)信電子商務(wù)系統(tǒng)的分析與設(shè)計(jì)過程,再次讓讀者加深課程知識(shí)的學(xué)習(xí)和靈活運(yùn)用,為課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)提供參考。本書每章的項(xiàng)目實(shí)踐和實(shí)驗(yàn)環(huán)節(jié)的模板是一脈相承的遞進(jìn)關(guān)系,學(xué)完本書將可以獨(dú)立完成一個(gè)Web項(xiàng)目。本書所有案例和項(xiàng)目均來自工程實(shí)踐,并附有源代碼等電子資料,便于教學(xué),也適合讀者自行研讀。◆Java Web編程技術(shù)前言3. 本書內(nèi)容全書共9章分為5個(gè)部分。第一部分: 第1、2章,第二部分: 第3章,第三部分: 第4~7章,第四部分: 第8章,第五部分: 第9章。第1章Web編程技術(shù)概述。首先介紹當(dāng)前編程的兩種體系: C/S和B/S體系。Web編程屬B/S體系,是主流的編程體系;然后介紹Web編程前端和后端的常用技術(shù);最后介紹Web編程的常用架構(gòu)和設(shè)計(jì)模式,旨在使讀者從最初就要重視軟件分層和采用合適的設(shè)計(jì)模式(如MVC),理解這一點(diǎn)對(duì)后繼的學(xué)習(xí)有很大幫助。第2章Web開發(fā)環(huán)境。本章主要介紹Web項(xiàng)目涉及到的開發(fā)工具或軟件以及開發(fā)流程,包括JDK的安裝和配置、Web服務(wù)器Tomcat的安裝與配置、數(shù)據(jù)庫(kù)MySQL的安裝與配置、集成開發(fā)環(huán)境MyEclipse的安裝與配置。著重介紹Java Web項(xiàng)目的開發(fā)流程,包括網(wǎng)頁(yè)、Java源碼的存放位置、分包原則、部署、服務(wù)器的啟動(dòng)和網(wǎng)頁(yè)瀏覽等步驟。第3章Web編程基礎(chǔ)。本章介紹Web前端編程的HTML、CSS、JavaScript和JQuery技術(shù),在MVC中屬于視圖(View)技術(shù)。HTML是前端開發(fā)基礎(chǔ),HTML 5是最新版本,在移動(dòng)端開發(fā)極具優(yōu)勢(shì)。CSS是層疊樣式表,是W3C推薦的技術(shù),DIV CSS布局是網(wǎng)站布局的主流技術(shù)。JavaScript是Web前端編程主要語言,是實(shí)現(xiàn)用戶交互,提高用戶體驗(yàn)的主要技術(shù)。JQuery是JavaScript主要框架,可簡(jiǎn)化JS的開發(fā)。第4章Servlet編程技術(shù)。Servlet技術(shù)是Sun公司最早推出的Web技術(shù),是JSP技術(shù)的基礎(chǔ),在MVC中屬控制器(Controller)技術(shù)。本章介紹Servlet的生命周期,體系結(jié)構(gòu),常用接口HttpRequest、HttpResponse和HttpSession,會(huì)話跟蹤,基于Session的登錄權(quán)限控制系統(tǒng)。第5章JSP編程技術(shù)。JSP本質(zhì)仍是Servlet,但在網(wǎng)頁(yè)的設(shè)計(jì)上有重大改進(jìn),在MVC中屬視圖(View)技術(shù)。本章介紹JSP頁(yè)面結(jié)構(gòu)、JSP的編譯指令、動(dòng)作標(biāo)記和腳本元素;還介紹了JSP的內(nèi)置對(duì)象out、request、response、session、application和cookie對(duì)象。第6章JavaBean編程技術(shù)。為了提高軟件的可重用性,一般采用組件技術(shù),Java主要是JavaBean和EJB技術(shù),在MVC中屬模型(Model)技術(shù)。本章介紹JavaBean的特點(diǎn)和規(guī)范;介紹JSP的JavaBean標(biāo)記、JavaBean的使用和映射技術(shù);以及實(shí)體Bean、業(yè)務(wù)Bean、工具Bean的編寫以及常用第三方JavaBean的使用。第7章JDBC數(shù)據(jù)庫(kù)編程與Hibernate技術(shù)。Web編程必然涉及到數(shù)據(jù)庫(kù)訪問,JDBC是Java 數(shù)據(jù)庫(kù)訪問技術(shù),在MVC中屬模型技術(shù)。本章介紹JDBC訪問數(shù)據(jù)庫(kù)的常用類和接口: Connection、Statement和ResultSet,JDBC訪問數(shù)據(jù)庫(kù)的一般流程和步驟,常用的數(shù)據(jù)庫(kù)增、刪、改、查操作案例、分頁(yè)技術(shù)、事務(wù)處理流程、連接池技術(shù)等。本章還介紹持久化的概念、ORM的概念和原理、Hibernate的開發(fā)過程和操作數(shù)據(jù)庫(kù)(增、刪、改、查)實(shí)例。第8章Web編程架構(gòu)與Struts 2框架。Web編程是一個(gè)典型的分布式系統(tǒng),有必要了解分布式計(jì)算的體系結(jié)構(gòu)、Web編程的軟件分層架構(gòu)、Web編程的設(shè)計(jì)模式。本章介紹分布式的體系結(jié)構(gòu)、軟件分層架構(gòu)和Web設(shè)計(jì)模式,重點(diǎn)介紹模式1和模式2,以及實(shí)現(xiàn)模式2(MVC)的兩種方法,同時(shí)還介紹最流行的Struts 2框架技術(shù)。第9章誠(chéng)信電子商務(wù)系統(tǒng)。本章詳細(xì)介紹一個(gè)基于MVC 的電子商務(wù)系統(tǒng)的實(shí)現(xiàn)過程,包括需求分析、架構(gòu)設(shè)計(jì)、總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、前臺(tái)設(shè)計(jì)與實(shí)現(xiàn)、后臺(tái)功能設(shè)計(jì)與實(shí)現(xiàn)等。4. 本書編寫情況說明本書由郭路生、楊選輝擬訂大綱并擔(dān)任主編。第1、2章由劉春年編寫、第4~7章由郭路生編寫,第3、8、9章由楊選輝、魏鶯編寫。本書的出版得到了南昌大學(xué)教學(xué)改革立項(xiàng)項(xiàng)目的資助。由于作者水平有限,書中難免有不足和錯(cuò)誤之處,敬請(qǐng)讀者批評(píng)指正。
作者2016年10月
目錄Contents
第1章Web編程技術(shù)概述1
1.1編程體系簡(jiǎn)介1
1.1.1C/S架構(gòu)1
1.1.2B/S架構(gòu)2
1.2瀏覽器端編程技術(shù)3
1.2.1HTML3
1.2.2CSS4
1.2.3JavaScript4
1.3服務(wù)器端編程技術(shù)5
1.3.1JSP技術(shù)5
1.3.2Servlet技術(shù)7
1.3.3JavaBean和EJB技術(shù)8
1.3.4JDBC數(shù)據(jù)庫(kù)訪問技術(shù)9
1.4Web編程架構(gòu)10
1.4.1企業(yè)級(jí)應(yīng)用的開發(fā)架構(gòu)10
1.4.2Web編程設(shè)計(jì)模式11
習(xí)題16
第2章Web開發(fā)環(huán)境17
2.1JDK開發(fā)工具包17
2.1.1JDK的安裝17
2.1.2JDK的配置17
2.2Tomcat Web服務(wù)器19
2.2.1下載和安裝Tomcat19
2.2.2Tomcat的目錄結(jié)構(gòu)22
2.2.3第一個(gè)JSP頁(yè)面23
2.2.4配置Tomcat242.3集成開發(fā)環(huán)境介紹26
2.3.1Eclipse簡(jiǎn)介26
2.3.2安裝MyEclipse集成環(huán)境27
2.3.3配置MyEclipse 9.0的JDK和Tomcat環(huán)境29
2.3.4MyEclipse開發(fā)視圖介紹30
2.3.5項(xiàng)目實(shí)踐開發(fā)Web應(yīng)用程序32
2.4安裝和配置數(shù)據(jù)庫(kù)36
2.5實(shí)驗(yàn)指導(dǎo)39
習(xí)題41
◆Java Web編程技術(shù)目錄第3章Web編程基礎(chǔ)42
3.1HTML標(biāo)記語言42
3.1.1HTML簡(jiǎn)介42
3.1.2HTML的基本概念44
3.1.3HTML的常用標(biāo)記47
3.2HTML的框架標(biāo)記58
3.3CSS樣式表61
3.3.1CSS概念61
3.3.2CSS基本規(guī)則62
3.3.3CSS的創(chuàng)建64
3.3.4選擇符66
3.3.5CSS樣式72
3.3.6框模型77
3.3.7定位與浮動(dòng)79
3.3.8DIV+CSS網(wǎng)頁(yè)布局83
3.3.9項(xiàng)目實(shí)戰(zhàn)誠(chéng)信電子商務(wù)網(wǎng)店的頁(yè)面布局85
3.4JavaScript編程89
3.4.1概述89
3.4.2在網(wǎng)頁(yè)中引入JavaScript90
3.4.3JavaScript基本語法91
3.4.4JavaScript對(duì)象93
3.4.5瀏覽器內(nèi)部對(duì)象與DOM模型95
3.4.6JavaScript事件102
3.4.7JavaScript框架(庫(kù))jQuery104
3.4.8JavaScript的典型應(yīng)用106
3.5實(shí)驗(yàn)指導(dǎo)112
習(xí)題117
第4章Servlet編程技術(shù)118
4.1Servlet概述118
4.1.1Servlet的基本概念118
4.1.2Servlet的功能119
4.1.3Servlet技術(shù)的特點(diǎn)119
4.1.4Servlet的生命周期120
4.2Servlet的創(chuàng)建、配置和調(diào)用121
4.2.1Servlet的創(chuàng)建121
4.2.2Servlet的文件框架122
4.2.3Servlet的配置124
4.2.4Servelt的運(yùn)行126
4.3Servlet的常用接口及使用126
4.3.1Servlet的體系126
4.3.2Servlet請(qǐng)求和響應(yīng)接口127
4.3.3Servlet環(huán)境API接口133
4.3.4Servlet的請(qǐng)求轉(zhuǎn)發(fā)接口138
4.3.5Servlet會(huì)話跟蹤接口142
4.4項(xiàng)目實(shí)戰(zhàn)登錄與權(quán)限系統(tǒng)144
4.5實(shí)驗(yàn)指導(dǎo)148
習(xí)題149
第5章JSP編程技術(shù)150
5.1JSP概述150
5.1.1JSP簡(jiǎn)介150
5.1.2理解JSP程序的執(zhí)行151
5.2JSP頁(yè)面元素152
5.2.1JSP頁(yè)面的基本結(jié)構(gòu)152
5.2.2JSP的腳本元素153
5.2.3JSP的注釋156
5.2.4JSP的指令157
5.2.5JSP的動(dòng)作標(biāo)記164
5.3JSP內(nèi)置對(duì)象171
5.3.1內(nèi)置對(duì)象的作用范圍171
5.3.2out對(duì)象174
5.3.3request對(duì)象175
5.3.4response對(duì)象182
5.3.5session對(duì)象184
5.3.6application對(duì)象184
5.3.7其他內(nèi)置對(duì)象186
5.3.8Cookie對(duì)象188
5.4項(xiàng)目實(shí)戰(zhàn)基于Cookie的權(quán)限控制模塊189
5.5實(shí)驗(yàn)指導(dǎo)193
習(xí)題198
第6章JavaBean技術(shù)199
6.1JavaBean概述199
6.1.1組件技術(shù)與JavaBean199
6.1.2JavaBean的分類與特點(diǎn)200
6.1.3JavaBean規(guī)范200
6.2JavaBean編程201
6.2.1編寫JavaBean201
6.2.2使用JavaBean202
6.2.3封裝業(yè)務(wù)邏輯的JavaBean210
6.3實(shí)用的第三方JavaBean組件216
6.3.1使用JspSmartUpload實(shí)現(xiàn)文件上傳與下載216
6.3.2使用java Mail組件發(fā)送郵件222
6.3.3使用POI組件生成Excel報(bào)表230
6.4實(shí)驗(yàn)指導(dǎo)231
習(xí)題234
第7章JDBC數(shù)據(jù)庫(kù)編程與Hibernate技術(shù)235
7.1JDBC概述235
7.1.1JDBC簡(jiǎn)介235
7.1.2JDBC驅(qū)動(dòng)程序的類型236
7.2JDBC連接數(shù)據(jù)庫(kù)常用類237
7.2.1JDBC API所在的包237
7.2.2JDBC核心類的結(jié)構(gòu)及操作流程237
7.2.3驅(qū)動(dòng)程序管理類: DriverManager238
7.2.4數(shù)據(jù)庫(kù)連接類: Connection242
7.2.5SQL聲明類: Statement類243
7.2.6查詢結(jié)果集: ResultSet249
7.3JDBC操作數(shù)據(jù)庫(kù)實(shí)例250
7.3.1新建數(shù)據(jù)庫(kù)250
7.3.2數(shù)據(jù)Bean和業(yè)務(wù)邏輯Bean251
7.3.3插入數(shù)據(jù)注冊(cè)254
7.3.4顯示數(shù)據(jù)256
7.3.5分頁(yè)顯示數(shù)據(jù)258
7.3.6修改數(shù)據(jù)261
7.3.7刪除數(shù)據(jù)264
7.4事務(wù)處理265
7.4.1事務(wù)及處理事務(wù)的方法265
7.4.2事務(wù)處理的流程266
7.5數(shù)據(jù)庫(kù)連接池267
7.5.1概述267
7.5.2通過Tomcat連接池連接數(shù)據(jù)庫(kù)268
7.6Hibernate操作數(shù)據(jù)庫(kù)271
7.6.1基本概念271
7.6.2Hibernate的映射機(jī)制272
7.6.3Hibernate的開發(fā)過程273
7.6.4使用Hibernate操作數(shù)據(jù)庫(kù)278
7.7實(shí)驗(yàn)指導(dǎo)286
習(xí)題294
第8章Web編程架構(gòu)與Struts 2框架295
8.1分布式計(jì)算的體系結(jié)構(gòu)295
8.1.1單級(jí)結(jié)構(gòu)295
8.1.2兩級(jí)結(jié)構(gòu)296
8.1.3三級(jí)結(jié)構(gòu)296
8.1.4N級(jí)結(jié)構(gòu)297
8.2軟件邏輯分層結(jié)構(gòu)297
8.2.1兩層結(jié)構(gòu)298
8.2.2三層結(jié)構(gòu)298
8.3JSP設(shè)計(jì)模式300
8.3.1模式1: JSP JavaBean實(shí)現(xiàn)300
8.3.2模式2: 基于MVC模式的實(shí)現(xiàn)304
8.4Struts 2框架技術(shù)308
8.4.1Struts 2體系結(jié)構(gòu)308
8.4.2Struts 2配置310
8.4.3Action的編寫312
8.4.4Struts 2應(yīng)用實(shí)例315
8.5實(shí)驗(yàn)指導(dǎo)316
習(xí)題317
第9章誠(chéng)信電子商務(wù)系統(tǒng)318
9.1系統(tǒng)概述318
9.2系統(tǒng)分析318
9.2.1需求分析318
9.2.2業(yè)務(wù)實(shí)體說明319
9.3總體設(shè)計(jì)320
9.3.1項(xiàng)目規(guī)劃320
9.3.2系統(tǒng)功能結(jié)構(gòu)圖320
9.3.3系統(tǒng)架構(gòu)設(shè)計(jì)320
9.4數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)321
9.5公共模塊設(shè)計(jì)324
9.5.1編程工具324
9.5.2通用數(shù)據(jù)庫(kù)操作類325
9.5.3實(shí)用工具類325
9.6系統(tǒng)前臺(tái)主要功能模塊設(shè)計(jì)327
9.6.1系統(tǒng)前臺(tái)公共頁(yè)面327
9.6.2商品展示模塊設(shè)計(jì)329
9.6.3會(huì)員注冊(cè)與登錄模塊設(shè)計(jì)337
9.6.4購(gòu)物車模塊設(shè)計(jì)342
9.6.5訂單模塊設(shè)計(jì)346
9.7系統(tǒng)后臺(tái)設(shè)計(jì)351
9.7.1系統(tǒng)管理員登錄模塊設(shè)計(jì)352
9.7.2商品管理及商品分類管理模塊353
9.7.3訂單管理模塊設(shè)計(jì)357
9.7.4留言管理模塊設(shè)計(jì)358
9.7.5公告管理模塊設(shè)計(jì)359
9.7.6會(huì)員管理模塊設(shè)計(jì)359
習(xí)題360
參考文獻(xiàn)361