內容提要
《Java Web輕量級開發面試教程》圍繞著軟體公司對高級程式設計師的平均要求,根據筆者多年的面試和培訓經驗,構建了JavaWeb 方面的高級程式設計師的進階體系,包括初級程式設計師與高級程式設計師的差別對比、資料庫實用知識點、JSP+Servlet+JavaBean+DB 開發框架、Struts 框架、Spring IoC、Spring AOP、攔截器、Hibernate 和Spring的整合方式等,最後兩章講述了基於SSH 和基於Spring MVC 的兩個案例,以及在面試時如何高效地介紹自己項目經驗的方法。
《Java Web輕量級開發面試教程》的閱讀人群是,想從事軟體行業的在校學生、正在找工作的大學畢業生、想轉行做Java 開發但缺乏經驗的人和已經工作的初級程式設計師。
《Java Web輕量級開發面試教程》附帶教學視頻,視頻里會講到所有案例的配置和運行方式,建議先觀看視頻運行的實例代碼,然後再來閱讀《Java Web輕量級開發面試教程》。
目錄
第1 章 高級程式設計師的Web 知識體系 1
1.1 合格Java 程式設計師和高級Java 程式設計師的技能比較 1
1.1.1 Java Core 方面 2
1.1.2 Java Web 方面 3
1.1.3 資料庫層面 4
1.1.4 項目管理方面 5
1.1.5 能幫助到你的加分項 5
1.2 你可以少走的彎路 6
1.2.1 哪些知識點可以延後了解 6
1.2.2 大學階段的實習經驗能幫到你 7
1.2.3 剛開始的1 到3 年,找個專注的方向 8
1.2.4 常學習、多實踐的人工資漲得快 8
1.3 上手Web 方面的開發工具 9
1.3.1 在MyEclipse 上開發和部署Web 項目 9
1.3.2 更換連線埠號 14
1.3.3 引入外部的jar 包 15
1.3.4 支持中文 16
1.4 推薦一些經過實踐檢驗的學習方法 19
第2 章 需要了解的資料庫知識 21
2.1 合理地使用各種連線 21
2.1.1 內連線和左連線 21
2.1.2 範式和連線的代價 24
2.1.3 表的設計和數據冗餘 25
2.2 不複雜但容易忽視的SQL 用法 25
2.2.1 group by 和Having 26
2.2.2 Having 的另一個常用用途——查看重複記錄 27
2.2.3 通過一些案例來看一下常用的Select 定式 28
2.3 索引的用途和代價 29
2.3.1 從結構上來分析索引的好處和代價 29
2.3.2 建索引時我們需要權衡的因素 30
2.3.3 索引的正確用法 31
2.4 讓你的JDBC 代碼更專業 32
2.4.1 用try…catch…finally 從句 32
2.4.2 預處理和批處理 34
2.4.3 事務的提交與回滾 36
2.4.4 事務隔離級別 38
2.5 總結 39
第3 章 JSP+Servlet+JavaBean 框架 41
3.1 只應負責界面顯示的JSP 41
3.1.1 從一個大而全的例子裡分析JSP 的語法 42
3.1.2 “大而全”和“小而精” 45
3.2 讓Servlet 承擔控制器的角色 46
3.2.1 基本知識點 46
3.2.2 生命周期與多執行緒運行方式 47
3.2.3 JSP+Servlet 的開發模式 49
3.2.4 運行結果和JSP+Servlet 模式的說明 53
3.3 JSP+Servlet+JavaBean+JDBC 的開發模式 54
3.3.1 通過一個簡單的例子來了解JavaBean 54
3.3.2 在JavaBean 里編寫業務邏輯 57
3.3.3 對MVC 的總結 64
3.4 總結 64
第4 章 通過Struts 進一步了解MVC 66
4.1 在MyEclipse 里開發一個基本的Struts 程式 66
4.1.1 創建Web 項目,並導入必要的jar 包 67
4.1.2 開發前端的JSP 代碼 67
4.1.3 在web.xml 里聲明使用Struts 68
4.1.4 配置struts.xml 檔案 69
4.1.5 開發Action 類 69
4.1.6 開發兩個跳轉結果頁面 71
4.2 通過運行,了解Struts 的工作流程 71
4.2.1 Struts 的跳轉流程分析 72
4.2.2 Struts MVC 框架和JSP+Servlet+JavaBean 框架的比較 73
4.3 通過Struts 的驗證機制校驗輸入內容 74
4.3.1 通過Validate 方法來驗證 74
4.3.2 在配置檔案里定義驗證方式 77
4.4 Struts 攔截器 81
4.4.1 攔截器與職責鏈設計模式 81
4.4.2 通過登錄案例詳解攔截器的用法 82
4.4.3 攔截器的使用要點歸納 87
4.5 為了儘快進階,你必須知道如下知識 87
4.5.1 Action 里的跳轉 88
4.5.2 可以指定Action 里的處理方法 89
4.5.3 對Struts 框架的進一步了解 89
4.6 關於Struts 框架的常見面試點 90
第5 章 Spring 的基本知識點分析 92
5.1 依賴注入的好處 92
5.1.1 一個基本的依賴注入的程式 93
5.1.2 IoC 的特點,不用New 就可以初始化類 95
5.1.3 控制翻轉和依賴注入 95
5.1.4 面向接口編程的本質是縮小修改的影響範圍 96
5.2 依賴注入的常用知識點說明 100
5.2.1 讀取配置檔案的各種方式 100
5.2.2 單例多例,有狀態無狀態Bean 100
5.2.3 Spring 的注入方式與AutoWire 103
5.2.4 @AutoWired 註解 105
5.2.5 Bean 的生命周期 106
5.3 AOP,面向切面編程 108
5.3.1 面向切面編程的使用場景 108
5.3.2 面向切面編程的案例演示 108
5.3.3 深入了解面向切面編程的各種概念 114
5.4 如何證明自己了解Spring 的基本技能 114
第6 章 Spring 的MVC 框架 117
6.1 一個只包含MVC 的案例 117
6.1.1 開發Spring MVC 的代碼 117
6.1.2 Spring MVC 的運行流程 120
6.1.3 與Struts MVC 的區別 122
6.2 Spring MVC 的關鍵類說明 122
6.2.1 通過HandlerMapping 來指定處理的控制器類 123
6.2.2 通過視圖解析器處理回響結果 127
6.2.3 通過ModelAndView 返回視圖結果 129
6.2.4 Spring 的攔截器 131
6.3 在Spring MVC 方面你如何準備自己 135
第7 章 通過ORM 專注業務(基礎篇) 138
7.1 讓你儘快掌握Hibernate 138
7.1.1 通過Hibernate 完成ORM 的具體步驟 139
7.1.2 通過Hibernate 的註解方式實現ORM 144
7.1.3 Hibernate 里生成主鍵的方式 146
7.2 Session 對象在項目里的用法 150
7.2.1 Session 對象中的重要方法 150
7.2.2 Session 對象中的load 和get 方法的差別 152
7.2.3 Session 快取與三種對象狀態 154
7.2.4 FlushMode 與清空快取的時間點 157
7.3 在Hibernate 里執行複雜的查詢 158
7.3.1 where、groupby 和having 158
7.3.2 表關聯查詢和子查詢 160
7.3.3 通過SQLQuery 對象執行SQL 語句 162
7.3.4 通過Criteria 設定查詢條件 163
7.4 針對Hibernate 基礎知識部分的小結 166
第8 章 通過ORM 專注業務(高級篇) 168
8.1 通過Hibernate 關聯多張表 168
8.1.1 通過配置檔案實現一對一關聯 169
8.1.2 一對一關聯的註解實現方式 173
8.1.3 一對多關聯(配置檔案,返回List) 177
8.1.4 一對多關聯(註解,返回Set) 182
8.1.5 用Map 來管理一對多關聯 186
8.1.6 通過配置檔案實現多對多關聯 189
8.1.7 多對多關聯的註解實現方式 194
8.1.8 關聯性操作里的cascade 取值 196
8.1.9 通過inverse 設定外鍵控制權 198
8.2 Hibernate 里的事件機制 201
8.2.1 在攔截器里放一些通用性的代碼 201
8.2.2 事件系統和監聽器 207
8.3 Hibernate 中的最佳化 212
8.3.1 結合資料庫大背景 212
8.3.2 使用SessionFactory 二級快取 213
8.3.3 項目中常用的最佳化策略 218
8.4 在Hibernate 方面我們面試的方式 218
第9 章 Spring 整合資料庫層面的套用 221
9.1 Spring 與Hibernate 的整合 221
9.1.1 Spring 整合Hibernate 註解的例子 222
9.1.2 配置數據池來提升效率 225
9.2 通過Spring 管理事務 227
9.2.1 編程式事務管理方式 227
9.2.2 聲明式事務管理方式 232
9.2.3 事務傳播機制要解決的問題(適用範圍) 235
9.3 針對Spring 整合資料庫的總結 237
第10 章 Web 框架案例分析 238
10.1 Struts、Spring 與Hibernate 的整合 238
10.1.1 SSH 整合案例的說明 239
10.1.2 編寫登錄頁面和Web.xml 配置檔案 240
10.1.3 編寫Struts 的配置檔案struts.xml 242
10.1.4 編寫Spring 的配置檔案 243
10.1.5 編寫Struts 的Action 類 245
10.1.6 編寫Service 和DAO 類 246
10.1.7 編寫Model 類和映射檔案 248
10.1.8 編寫顯示返回結果的index.jsp 249
10.1.9 對SSH 框架的分析 250
10.2 基於Spring MVC 的Web 框架分析 251
10.2.1 Spring MVC 案例的說明 251
10.2.2 在web.xml 里定義使用Spring MVC 253
10.2.3 編寫整合Hibernate 的xml 檔案和Model 類 254
10.2.4 配置Spring MVC 的xml 檔案 257
10.2.5 編寫前端的增改查JSP 檔案 258
10.2.6 編寫攔截器類和控制器類 261
10.2.7 編寫Service 層的代碼 264
10.2.8 編寫DAO 層的代碼 265
10.3 描述商業項目案例經驗 267
第11 章 簡歷面試那些事 271
11.1 不要讓你的簡歷進資源回收筒 271
11.1.1 面試的基本流程 272
11.1.2 根據職務介紹再針對性地準備簡歷 272
11.1.3 哪類簡歷比較難獲面試機會 273
11.1.4 準備簡歷時該注意哪些 273
11.2 面試之前,你要做哪些準備 274
11.2.1 準備項目經驗描述,別害怕,因為面試官什麼都不知道 274
11.2.2 面試官的策略——如何通過提問,找出你回答中的矛盾 275
11.3 面試陳述篇:充滿自信地描述你的項目經驗 275
11.3.1 準備項目的各種細節,一旦被問倒了,就說明你沒做過 276
11.3.2 充分準備你要說的項目的框架、資料庫 277
11.3.3 不露痕跡地說出面試官愛聽的話 279
11.3.4 一定要主動,面試官沒有義務挖掘你的亮點 280
11.3.5 一旦有低級錯誤,可能會直接出局 281
11.4 面試引導篇:把問題引入準備好的範圍 282
11.4.1 項目要素、框架設計和資料庫,這些是必須要準備的 282
11.4.2 準備些加分點,在介紹項目時有意提到,但別說全 284
11.4.3 對於面試官的圈套,別順口回答 284
11.4.4 別自作聰明地回答面試官沒問到的但你很想說的亮點 285
11.5 必問的問題:這些非技術問題你逃不掉的 286
11.5.1 如何描述你在項目里的作用?別單說你僅僅coding 286
11.5.2 一定要找機會說出你的團隊合作能力 287
11.5.3 當問項目周期規模和技術時,是在考查你值多少錢 288
11.5.4 想盡辦法展示你的責任心和學習能力 289
11.6 開放性問題篇:面試官想擺脫你的準備,別慌,有技巧 290
11.7 當你有權提問時,別客氣,這是個逆轉的好機會 290
11.7.1 通過提問,進一步展示你和職位的匹配度 291
11.7.2 通過提問,說出你沒被問到的亮點 291
11.7.3 可以展示一些非技術的特長 291
11.8 亡羊補牢:萬一你回答不好,該怎么辦 292
11.8.1 坦誠相對,說明你的擅長點,讓面試官給次機會 292
11.8.2 展示你以前的亮點,讓面試官相信你的潛力和能力 293
11.8.3 記下所有的面試題,迎接下次面試 295
11.9 基礎差,不知道怎么應對面試時的對策 295
11.9.1 有計畫的學習和實踐 295
11.9.2 多挖掘你之前的項目經驗和技術點 296
11.9.3 及時提升你項目里用過的知識 297
11.10 背景調查的一般流程 297
11.10.1 技術面試階段,著重甄別是否是商業項目 298
11.10.2 關鍵因素一旦不對,立即出局 298
11.11 面試評分的一般依據 299
11.11.1 技術面試的考查要點 299
11.11.2 綜合能力面試的考查方式 301
視頻目錄
第1 章
安裝本書運行環境MyEclispe 和MySQL 的步驟
運行第一個Java Web 程式
更換連線埠號,引入jar 包和讓開發環境支持中文
分享Java Web 方面的學習經驗
第2 章
關於連線的講解
在項目里建表的注意點
如何正確地創建和使用索引
JDBC 代碼的注意點
事務隔離級別的講解
如何準備面試,資料庫篇
第3 章
簡單JSP 案例的講解
JSP+Servlet 的案例分析
簡單JavaBean 案例的講解
基於JSP+Servlet+JavaBean+DB 案例的講解
第4 章
開發一個簡單的Struts 案例
在Struts 里加入驗證器
通過配置檔案實現Struts 驗證器
Struts 攔截器的講解
如何準備面試,Struts 篇
第5 章
Spring IoC 的講解
Spring 面向接口編程
用單例和多例創建Spring Bean
SpringAutoWire By Name 的講解
通過註解實現Spring 的IOC
Spring AOP 的講解
第6 章
Spring MVC 的講解
通過HandlerMapping 指定控制器
BeanNameUrlHandlerMapping 用法說明
在Spring MVC 里配置多個視圖解析器
Spring 攔截器的講解
如何準備面試,Spring 篇
第7 章
Hibernate 的簡單案例說明
通過註解實現Hibernate
Hibernate 里生成主鍵的方式
Hibernate 里Session 對象的講解
Hibernate 三種Session 對象
HQL 的用法
通過HQL 實現關聯等複雜查詢
在Hibernate 里運行SQL 語句
Hibernate 里Criteria 對象的用法
第8 章
Hibernate 里的單向一對一關聯
通過註解實現雙向一對一關聯
通過配置檔案實現一對多的關聯
通過註解實現一對多關聯
通過Map 實現一對多關聯
通過配置檔案實現多對多關聯
通過註解實現多對多關聯
通過inverse 設定外鍵控制權
在Hibernate 里實現攔截器
Hibernate 監聽器的講解
在Hibernate 里實現二級快取
如何準備面試,Hibernate 篇
第9 章
Spring 和Hibernate 的整合
整合時Hibernate 里配置連線池
編程式事務的講解
聲明式事務的講解
第10 章
SSH 整合案例的講解
Spring MVC+Hibernate 整理案例的講解
在面試里,如何準備你的項目描述
第11 章
面試流程的講解
如何準備你的簡歷
面試前的準備
面試技巧的綜合說明
如何在短時間內提升你自己的能力