Java Web輕量級開發面試教程

Java Web輕量級開發面試教程

作者: 孟憲福 胡書敏 金華
出版社: 電子工業
出版在: 2017-08-01
ISBN-13: 9787121321450
ISBN-10: 7121321459
裝訂格式: 平裝
總頁數: 301 頁




內容描述


本書圍繞著軟件公司對高級程序員的平均標準要求,根據筆者多年的面試和培訓經驗,構建了Java Web方面的高級程序員的進階體系,包括初級程序員與高級程序員的差別對比、數據庫實用知識點、JSP+Servlet+Javabean+DB開發框架、Struts框架、Spring IoC、Spring AOP、攔截器、Hibernate和Spring的整合方式等,最後兩章分別講述了基於SSH和基於Spring MVC的兩個案例,以及在面試時如何高效地介紹自己項目經驗的方法。本書附帶教學視頻,視頻里會講到所有案例的配置和運行方式,建議先觀看視頻運行的實例代碼,然後再來閱讀本書的文字。

海報:


目錄大綱


第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




相關書籍

Python 程序員面試筆試寶典

作者 猿媛之家辛曉婷李華榮等

2017-08-01

Java 程序員面試筆試通關寶典

作者 聚慕課教育研發中心

2017-08-01

產品經理面試攻略

作者 藍鯨部落

2017-08-01