第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 章
面试流程的讲解
如何准备你的简历
面试前的准备
面试技巧的综合说明
如何在短时间内提升你自己的能力