本書由淺入深、循序漸進地介紹了學習Java Web程序開發(fā)必備的知識和技能。主要內容包括構建Java Web開發(fā)環(huán)境、JSP頁面元素、JSP內置對象、JavaBean、數(shù)據(jù)庫訪問技術、Servlet技術、使用EL表達式、JSTL標準標簽、JSP操作XML、文件上傳與下載、使用Ajax技術、Struts 2框架的具體應用、Hibernate框架應用和Spring框架應用,最后以一個Struts 2+Hibernate+Spring三大框架整合的實例,綜合地介紹了Java Web在實際開發(fā)中的應用。
本書適合Java Web初學者快速入門,也適合已有Java Web基礎的人員完善自己的Java Web知識體系。另外,對于大中專院校和培訓班的學生,本書更是一本不可多得的教材。
Java是Sun公司推出的能夠跨越多平臺的、可移植性最高的編程語言。Java技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。從而使其成為應用范圍最廣泛的開發(fā)語言,特別是在Web程序開發(fā)方面。
在市場上可以看到大量Java Web方面的書籍,這些書籍寫的都很不錯。可是,很多讀者看過之后雖然對知識點都了解了,但是依然不會動手操作,想要自己獨立開發(fā)一個項目很難。作者研究其中原因發(fā)現(xiàn),大多書籍比較重視知識點的介紹而忽略了實踐練習的重要性。本書從初學者的角度出發(fā),循序漸進地講解使用Java語言和開源框架進行Web程序開發(fā)應該掌握的技術,其中主要包括JSP/Servlet技術、常用的Web開發(fā)框架和Web開發(fā)實用技術等,這些知識是每一個程序員都應該具備的。
本書內容
第1章:構建Java Web應用程序。主要介紹了Java Web應用技術和服務器的安裝;重點介紹了JDK的安裝和配置以及Tomcat與MyEclipse的集成。
第2章:JSP頁面元素。主要介紹了JSP的基本元素和頁面指令,重點講解了腳本和各種動作元素的使用,并且使用本章所學知識完成一個求圓面積的項目案例。
第3章:JSP內置對象。主要介紹JSP九大內置對象及其用法以及它們的作用,之后應用JSP內置對象做出了一個簡單的在線考試系統(tǒng)。
第4章:JavaBean編程技術。主要講述了JavaBean的構成和JavaBean中不同類型屬性的使用;重點講述了JavaBean在JSP頁面中的應用以及JavaBean不同作用域的應用。
第5章:數(shù)據(jù)庫訪問技術。主要介紹了JDBC的概念、用法以及其驅動,還介紹了連接池連接數(shù)據(jù)庫;重點介紹了在JSP中訪問數(shù)據(jù)庫的方法,以及連接數(shù)據(jù)庫的常用接口。最后做了一個會員的增刪改查系統(tǒng)來鞏固本章知識。
第6章:Servlet技術。主要介紹了Servlet概念以及配置,介紹了Servlet基本類和常用接口;重點介紹了Servlet的會話跟蹤技術以及過濾器和監(jiān)聽器。最后使用該技術完成了對用戶的索引。
第7章:使用EL表達式。主要介紹了EL表達式語言的概念、變量以及運算符;重點介紹了EL表達式的隱含變量和EL函數(shù)。
第8章:JSTL標簽庫。簡單介紹了關于核心標簽的庫的變量、數(shù)字和日期時間的格式化;重點講述了通過I18N實現(xiàn)Web應用和國際化操作、通過SQL標簽完成對數(shù)據(jù)庫的操作以及XML標簽庫完成對XML的操作;還介紹了通過JSTL函數(shù)標簽庫完成常用的函數(shù)操作。
第9章:JSP操作XML。主要介紹了XML文檔中的元素定義屬性以及解析XML文件的方法。最后使用XML文件存儲數(shù)據(jù)完成了學生信息管理。
第10章:文件上傳與下載。主要介紹了使用Common-FileUpload組件實現(xiàn)文件上傳以及使用輸入輸出流實現(xiàn)文件下載。
第11章:應用Ajax技術。簡單介紹了Ajax開發(fā)模式的優(yōu)勢;重點講述了XMLHttpRequest對象、通過Ajax向服務器端發(fā)送請求以及Ajax向服務端發(fā)送相應。
第12章:Struts 2框架。主要介紹了Struts 2的配置、各類型標簽的使用和輸入校驗機制;還介紹了文件上傳與下載的實現(xiàn)。
第13章:Hibernate技術。主要介紹了Session接口、Hibernate的持久化以及Hibernate的映射文件、映射關系以及HOL語言、Hibernate緩存;最后使用Hibernate技術實現(xiàn)了學生信息管理系統(tǒng)。
第14章:Spring框架。主要介紹了Spring框架概述,以及兩個非常重要的概念IoC和AOP。最后結合Struts 2框架實現(xiàn)了用戶注冊功能。
第15章:交友社區(qū)項目。本章通過一個Web項目講述Struts 2、Hibernate和Spring三大框架的整合,并且詳細講述了各個模塊的實現(xiàn)過程和運行結果。
本書特色
本書采用大量的實例進行講解,力求通過實際操作使讀者輕松掌握Java Web技術的使用。本書每章后面都有精選的習題供讀者鞏固所學知識,每個章節(jié)末尾都有實踐疑難解答,在這個模塊中收集了每章中的重點、難點以及易出錯點以問答的形式來告訴讀者,使讀者更輕松地掌握這些知識。本書難度適中,內容由淺而深、實用性強、覆蓋面廣、條理清晰。
知識全面:本書全面地介紹了Java Web的各知識點,具有很強的系統(tǒng)性。
示例典型、應用廣泛:作者精心挑選了大量示例程序,它們都是根據(jù)作者在實際開發(fā)中的經(jīng)驗總結而來,涵蓋了在實際開發(fā)中出現(xiàn)的各種問題。而且有些程序可以直接在項目中使用,無須二次開發(fā)。
快速掌握:注重技術原理和實際應用的高度融合,通過循序漸進的內容組織,幫助讀者快速掌握和應用Java Web技術。
隨書光盤:本書為實例配備了視頻教學文件,讀者可以通過視頻文件更加直觀地學習Java Web相關知識。
網(wǎng)站技術支持:讀者在學習或者工作的過程中,如果遇到實際問題,可以直接登錄www.itzcn.com與我們取得聯(lián)系,作者會在第一時間內給予幫助。
讀者對象
本書具有知識全面、實例精彩、指導性強的特點,力求以全面的知識及豐富的實例來指導讀者透徹地學習Java Web方面的知識。本書可以作為JSP的入門書籍,也可以幫助中級讀者提高技能,對高級讀者也有一定的啟發(fā)意義。
本書適合以下人員閱讀學習:
有志于從事軟件開發(fā)的初學者
高等院校計算機相關專業(yè)的老師和學生
準備從事軟件開發(fā)的求職者
JSP初學者
MVC框架編程人員
除了封面署名人員之外,參與本書編寫的人員還有馬海軍、李海慶、陶麗、王詠梅、康顯麗、郝軍啟、朱俊成、宋強、孫洪葉、袁江濤、張東平、吳鵬、王新偉、劉青鳳、湯莉、冀明、王超英、王丹花、閆琰、張麗莉、李衛(wèi)平、王慧、牛紅惠、丁國慶、黃錦剛、李旎、王中行、李志國等。在編寫過程中難免會有漏洞,歡迎讀者通過我們的網(wǎng)站www.itzcn.com與我們聯(lián)系,幫助我們改正提高。
編 者
2008年2月
第1章 構建Java Web應用程序
1.1 初識Java Web
1.2 Java Web開發(fā)環(huán)境概述
1.2.1 開發(fā)工具包JDK
1.2.2 Web服務器
1.2.3 數(shù)據(jù)庫
1.2.4 Web瀏覽器
1.3 JDK
1.3.1 JDK的下載和安裝
1.3.2 配置JDK
1.4 安裝配置Tomcat服務器
1.4.1 Tomcat的下載和安裝
1.4.2 配置Tomcat應用程序服務器
1.5 使用MyEclipse開發(fā)Web應用
1.5.1 創(chuàng)建項目 第1章 構建Java Web應用程序
1.1 初識Java Web
1.2 Java Web開發(fā)環(huán)境概述
1.2.1 開發(fā)工具包JDK
1.2.2 Web服務器
1.2.3 數(shù)據(jù)庫
1.2.4 Web瀏覽器
1.3 JDK
1.3.1 JDK的下載和安裝
1.3.2 配置JDK
1.4 安裝配置Tomcat服務器
1.4.1 Tomcat的下載和安裝
1.4.2 配置Tomcat應用程序服務器
1.5 使用MyEclipse開發(fā)Web應用
1.5.1 創(chuàng)建項目
1.5.2 創(chuàng)建JSP文件
1.5.3 發(fā)布項目到Tomcat并運行
1.6 習題
1.7 實踐疑難解答
1.7.1 在網(wǎng)頁設計中JSP和HTML有什么區(qū)別
1.7.2 啟動Tomcat出現(xiàn)java.net.BindException異常
第2章 JSP頁面元素
2.1 JSP指令元素
2.1.1 page指令
2.1.2 include指令
2.1.3 taglib指令
2.2 JSP腳本元素
2.2.1 聲明
2.2.2 表達式
2.2.3 腳本程序
2.3 JSP動作元素
2.3.1 <jsp:include>動作
2.3.2 <jsp:useBean>動作
2.3.3 <jsp:forward>動作
2.3.4 <jsp:setProperty>動作和<jsp:getProperty>動作
2.3.5 <jsp:param>動作
2.3.6 <jsp:plugin>動作和<jsp:fallback>動作
2.3.7 JSP注釋
2.4 項目案例:求圓的周長和面積
2.5 習題
2.6 實踐疑難解答
2.6.1 被include引入的頁面有什么要求或規(guī)范
2.6.2 如何獲取跳轉頁面的參數(shù)
2.6.3 JSP中動作元素include和forward的差別
第3章 JSP內置對象
3.1 request對象
3.1.1 request對象方法
3.1.2 獲取客戶端請求參數(shù)
3.1.3 獲取HTTP請求頭
3.2 response對象
3.2.1 response對象方法
3.2.2 重定向
3.3 out對象
3.4 session對象
3.4.1 session對象的方法
3.4.2 session對象的ID
3.4.3 session對象的應用
3.5 application對象
3.6 page與config對象
3.7 pageContext對象
3.8 exception對象
3.9 綜合案例:在線考試系統(tǒng)
3.10 習題
3.11 實踐疑難解答
3.11.1 JSP內置對象為什么可以直接使用
3.11.2 JSP中的request對象可以設置多個屬性
3.11.3 JSP中的內置對象的作用域是什么意思
第4章 JavaBean編程技術
4.1 JavaBean概述
4.1.1 JavaBean技術介紹
4.1.2 JavaBean的分類
4.1.3 JavaBean規(guī)范
4.2 JavaBean的屬性
4.2.1 Simple屬性
4.2.2 Indexed屬性
4.2.3 Bound屬性
4.2.4 Constrained屬性
4.3 更加對象化的JSP開發(fā)
4.3.1 創(chuàng)建JavaBean
4.3.2 創(chuàng)建注冊頁面
4.3.3 創(chuàng)建用戶信息顯示頁面
4.3.4 運行結果
4.4 JavaBean與JSP的完美結合
4.4.1 創(chuàng)建JavaBean
4.4.2 創(chuàng)建學生檔案錄入頁面
4.4.3 在JSP頁面中使用useBean標簽
4.4.4 運行結果
4.5 JavaBean的作用域
4.5.1 JavaBean的作用域簡介
4.5.2 Page作用域
4.5.3 Request作用域
4.5.4 Session作用域
4.5.5 Application作用域
4.6 項目案例:對用戶登錄信息進行檢測
4.7 習題
4.8 實踐疑難解答
4.8.1 JavaBean出現(xiàn)找不到屬性值的問題
4.8.2 為JavaBean屬性賦值時出現(xiàn)錯誤
第5章 數(shù)據(jù)庫訪問技術
5.1 JDBC概述
5.1.1 什么是JDBC
5.1.2 JDBC的API介紹
5.1.3 JDBC驅動程序
5.2 JDBC連接數(shù)據(jù)庫常用類
5.2.1 管理驅動程序類DriverManager
5.2.2 Connection接口
5.3 JDBC-ODBC橋連Access數(shù)據(jù)庫
5.4 使用連接池連接數(shù)據(jù)庫
5.5 JDBC訪問數(shù)據(jù)庫的常用接口
5.5.1 Statement接口
5.5.2 PreparedStatement接口
5.5.3 CallableStatement接口
5.5.4 ResultSet接口
5.6 在JSP頁面中直接訪問數(shù)據(jù)庫
5.7 項目案例:會員增刪改查
5.8 習題
5.9 實踐疑難解答
5.9.1 關于Connection接口的問題
5.9.2 JDBC連接數(shù)據(jù)庫傳遞參數(shù)的問題
5.9.3 不同的數(shù)據(jù)庫需要不同的驅動程序嗎
第6章 Servlet技術
6.1 Servlet概述
6.2 Servlet的配置
6.2.1 Servlet的名字及類的配置
6.2.2 Servlet初始化參數(shù)的配置
6.3 Java Servlet API
6.4 會話跟蹤技術
6.4.1 三種會話機制
6.4.2 HTTP會話
6.5 Servlet過濾器和監(jiān)聽器
6.5.1 過濾器
6.5.2 監(jiān)聽器
6.6 項目案例:根據(jù)條件查詢用戶
6.7 習題
6.8 實踐疑難解答
6.8.1 forward和response.sendRedirec的區(qū)別
6.8.2 關于Servlet過濾器的問題
6.8.3 Servlet容器調用自定義
Servlet的問題
第7章 使用EL表達式
7.1 EL簡介
7.2 EL語法
7.2.1 EL變量
7.2.2 EL運算符
7.2.3 運算符的優(yōu)先級
7.2.4 EL表達式中的保留字
7.2.5 自動轉換類型
7.3 EL隱含對象
7.3.1 與范圍有關的隱含對象
7.3.2 與輸入有關的隱含對象
7.3.3 訪問環(huán)境信息的隱含對象
7.4 EL函數(shù)
7.5 項目案例:使用EL表達式顯示留言信息
7.6 習題
7.7 實踐疑難解答
7.7.1 EL函數(shù)報錯
7.7.2 EL表達式能否直接引用
javaBean中的方法
7.7.3 如何使用EL表達式獲取
參數(shù)值
第8章 JSTL標簽庫
8.1 JSTL標簽庫簡介
8.2 核心標簽庫
8.2.1 一般用途的標簽
8.2.2 流程控制標簽
8.2.3 循環(huán)控制標簽
8.2.4 URL相關標簽
8.3 I18N標簽庫
8.3.1 數(shù)字格式化標簽
8.3.2 日期時間格式化標簽
8.3.3 Web應用和消息的國際化標簽
8.4 SQL標簽庫
8.5 XML標簽庫
8.6 函數(shù)標簽庫
8.7 項目案例:保留登錄信息
8.8 習題
8.9 實踐疑難解答
8.9.1 JSTL標簽庫異常
8.9.2 JSTL格式化輸出下午時間卻顯示為上午
第9章 JSP操作XML
9.1 XML概述
9.1.1 XML文檔結構
9.1.2 XML語法特點
9.1.3 XML元素屬性
9.1.4 字符和實體引用
9.2 XML的兩種語法規(guī)則
9.2.1 文檔類型定義
9.2.2 元素屬性的定義
9.2.3 Schema文檔規(guī)則
9.3 DOM解析XML文檔
9.3.1 DOM接口
9.3.2 DOM讀取XML文件
9.4 SAX解析XML文檔
9.4.1 SAX常用接口
9.4.2 SAX讀取XML文件
9.5 DOM4J解析XML文檔
9.5.1 DOM4J介紹
9.5.2 使用DOM4J創(chuàng)建XML文檔
9.5.3 使用DOM4J解析XML文件
9.6 項目案例:學生信息管理
9.7 習題
9.8 實踐疑難解答
9.8.1 DOM4J怎樣獲取節(jié)點屬性
9.8.2 DOM4J生成的XML文件沒有格式
9.8.3 DOM4J中文亂碼問題
第10章 文件的上傳與下載
10.1 文件上傳
10.1.1 Common-FileUpload組件的下載
10.1.2 Common-FileUpload組件核心
10.1.3 簡單文件上傳
10.1.4 限制文件上傳類型
10.1.5 讀取表單信息
10.2 文件下載
10.2.1 文件類(File)
10.2.2 文件字節(jié)輸入流
10.2.3 字節(jié)輸出流
10.3 項目案例:音樂收藏夾
10.4 習題
10.5 實踐疑難解答
10.5.1 使用Common-fileUpload上傳獲取文本框值的問題
10.5.2 在文件上傳的時候報錯
第11章 應用Ajax技術
11.1 Ajax簡介
11.1.1 Ajax開發(fā)模式與傳統(tǒng)開發(fā)模式的比較
11.1.2 Ajax技術的特點
11.1.3 Ajax需要注意的幾個問題
11.1.4 Ajax使用的技術
11.2 使用XMLHttpRequest對象
11.2.1 初始化XMLHttpRequest對象
11.2.2 XMLHttpRequest對象的常用方法
11.2.3 XMLHttpRequest對象的常用屬性
11.3 發(fā)送請求與處理響應
11.3.1 發(fā)送請求
11.3.2 處理服務器響應
11.4 Ajax重構
11.5 項目案例:驗證用戶名是否被注冊
11.6 習題
11.7 實踐疑難解答
11.7.1 XMLHttpRequest狀態(tài)為0的問題
11.7.2 Ajax路徑問題
第12章 Struts 2框架
12.1 Struts 2簡介
12.1.1 MVC設計模式
12.1.2 MVC的優(yōu)點
12.1.3 Struts 2的結構體系
12.2 配置Struts 2運行環(huán)境
12.3 Struts 2配置文件
12.3.1 web.xml配置
12.3.2 struts.xml配置
12.4 Action配置
12.4.1 Action的實現(xiàn)類
12.4.2 Action配置
12.4.3 動態(tài)方法調用
12.4.4 使用method屬性
12.5 Result配置
12.5.1 Result映射
12.5.2 Result類型
12.6 Struts 2的攔截器
12.6.1 攔截器概述
12.6.2 配置攔截器
12.6.3 使用攔截器
12.6.4 攔截器應用
12.7 Struts 2標簽庫
12.7.1 Struts 2標簽庫概述
12.7.2 表單標簽
12.7.3 非表單標簽
12.7.4 控制標簽
12.7.5 數(shù)據(jù)標簽
12.8 輸入校驗
12.8.1 手動輸入校驗
12.8.2 定義校驗規(guī)則
12.8.3 校驗文件的配置風格
12.9 文件上傳與下載
12.9.1 在Struts 2中實現(xiàn)文件上傳
12.9.2 Struts 2實現(xiàn)文件下載
12.10 項目案例:對客戶信息進行校驗
12.11 習題
12.12 實踐疑難解答
12.12.1 package配置的命名空間問題
12.12.2 Struts 2中迭代List時的迭代次數(shù)問題
第13章 Hibernate技術
13.1 ORM簡介
13.1.1 ORM的概念
13.1.2 ORM優(yōu)缺點
13.2 Hibernate簡介
13.2.1 Hibernate的發(fā)展
13.2.2 Hibernate的下載與安裝
13.3 簡單的Hibernate程序
13.3.1 創(chuàng)建項目
13.3.2 創(chuàng)建持久化類
13.3.3 Hibernate映射文件
13.3.4 Hibernate配置文件
13.3.5 運行程序
13.4 Session接口
13.4.1 Configuration
13.4.2 SessionFactory
13.4.3 Session
13.4.4 Transaction
13.4.5 Query和Criteia
13.5 Hibernate數(shù)據(jù)持久化
13.5.1 Hibernate實例狀態(tài)
13.5.2 Hibernate的增刪改查操作
13.5.3 加載對象
13.6 Hibernate的緩存
13.6.1 一級緩存
13.6.2 二級緩存
13.7 映射文件配置
13.7.1 <hibernate-mapping>元素
13.7.2 <class>元素
13.7.3 <id>元素
13.7.4 <property>元素
13.8 映射關系
13.8.1 映射單向多對一關聯(lián)
13.8.2 基于外鍵單向一對一關聯(lián)
13.8.3 基于主鍵單向一對一關聯(lián)
13.8.4 映射雙向一對一關聯(lián)
13.8.5 映射雙向一對多關聯(lián)
13.8.6 映射單向多對多關聯(lián)
13.8.7 映射雙向多對多關聯(lián)
13.9 HQL語言
13.9.1 HQL查詢語言
13.9.2 連接查詢
13.9.3 子查詢
13.9.4 參數(shù)綁定機制
13.9.5 分頁查詢
13.10 學生信息管理系統(tǒng)
13.10.1 功能概述
13.10.2 Hibernate映射文件
13.10.3 Hibernate配置文件
13.10.4 系統(tǒng)實現(xiàn)
13.11 習題
13.12 實踐疑難解答
13.12.1 uniqueResult的使用問題
13.12.2 update更新操作
第14章 Spring框架
14.1 Spring概述
14.1.1 Spring體系結構
14.1.2 Spring的下載與安裝
14.1.3 使用BeanFactory管理Bean
14.1.4 ApplicationContext應用
14.2 Spring依賴注入
14.2.1 依賴注入和控制反轉
14.2.2 IOC的類型
14.2.3 Bean的配置
14.2.4 Setter注入
14.2.5 構造器注入
14.2.6 引用其他Bean
14.2.7 集合類型屬性
14.3 AOP
14.3.1 AOP簡介
14.3.2 通知(advice)
14.3.3 切入點
14.4 自動代理
14.4.1 使用BeanNameAutoProxy-
Creator
14.4.2 使用DefaultAdvisorAutoProxy-
Creator
14.5 項目案例:整合Struts 2實現(xiàn)用戶注冊
14.6 習題
14.7 實踐疑難解答
14.7.1 用了Spring之后能否使用new創(chuàng)建對象
14.7.2 IOC和AOP有什么作用,為什么要用它們
第15章 交友社區(qū)項目
15.1 系統(tǒng)概述
15.1.1 需求分析
15.1.2 系統(tǒng)用例圖
15.1.3 系統(tǒng)設計
15.2 數(shù)據(jù)庫設計
15.3 搭建Hibernate+Struts2+Spring開發(fā)環(huán)境
15.3.1 整合Struts2
15.3.2 加載Hibernate
15.3.3 加載Spring
15.4 系統(tǒng)實現(xiàn)
15.4.1 個人中心
15.4.2 好友管理
15.4.3 個性空間
習題答案