编辑推荐
这是一本面向初级程序员的书,《JavaWeb轻量级开发面试教程》中的案例和面试经验都是作者根据初程序员的现状而原创的。
很多人都在网上找资料学习,但并不系统,经常会遇到学过的用不上,正用的不太会这种尴尬的情境。不知道正确的学习路线,白白走了弯路。
《JavaWeb轻量级开发面试教程》针通过实用性案例+视频讲解+面试点解析,全方位介绍轻量级开发的必备知识点及面试小技巧。
内容简介
《Java Web轻量级开发面试教程》围绕着软件公司对高级程序员的平均标准要求,根据笔者多年的面试和培训经验,构建了JavaWeb方面的高级程序员的进阶体系,包括初级程序员与高级程序员的差别对比、数据库实用知识点、JSP+Servlet+Javabean+DB开发框架、Struts框架、SpringIoC、SpringAOP、拦截器、Hibernate和Spring的整合方式等,最后两章分别讲述了基于SSH和基于SpringMVC的两个案例,以及在面试时如何高效地介绍自己项目经验的方法。《Java Web轻量级开发面试教程》附带教学视频,视频里会讲到所有案例的配置和运行方式,建议先观看视频运行的实例代码,然后再来阅读《Java Web轻量级开发面试教程》的文字。
作者简介
1有11年Java开发经验,5年架构设计经验,5年数据库调优经验2有2年大数据开发经验3有出版经验4有讲述过Java课程,知道各阶段学生的情况和如何提升目录
第1章高级程序员的Web知识体系.................................................................................1
1.1合格Java程序员和高级Java程序员的技能比较...........................................................1
1.1.1JavaCore方面........................................................................................................2
1.1.2JavaWeb方面........................................................................................................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.1groupby和Having...............................................................................................26
2.2.2Having的另一个常用用途――查看重复记录...................................................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.3JSP+Servlet的开发模式......................................................................................49
3.2.4运行结果和JSP+Servlet模式的说明.................................................................53
3.3JSP+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.1Struts的跳转流程分析........................................................................................72
4.2.2StrutsMVC框架和JSP+Servlet+JavaBean框架的比较...................................73
4.3通过Struts的验证机制校验输入内容...........................................................................74
4.3.1通过Validate方法来验证....................................................................................74
4.3.2在配置文件里定义验证方式...............................................................................77
4.4Struts拦截器....................................................................................................................81
4.4.1拦截器与职责链设计模式...................................................................................81
4.4.2通过登录案例详解拦截器的用法.......................................................................82
4.4.3拦截器的使用要点归纳.......................................................................................87
4.5为了尽快进阶,你必须知道如下知识...........................................................................87
4.5.1Action里的跳转...................................................................................................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.2IoC的特点,不用New就可以初始化类..........................................................95
5.1.3控制翻转和依赖注入...........................................................................................95
5.1.4面向接口编程的本质是缩小修改的影响范围...................................................96
5.2依赖注入的常用知识点说明.........................................................................................100
5.2.1读取配置文件的各种方式.................................................................................100
5.2.2单例多例,有状态无状态Bean........................................................................100
5.2.3Spring的注入方式与AutoWire........................................................................103
5.2.4@AutoWired注解..............................................................................................105
5.2.5Bean的生命周期...............................................................................................106
5.3AOP,面向切面编程....................................................................................................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开发SpringMVC的代码..................................................................................117
6.1.2SpringMVC的运行流程...................................................................................120
6.1.3与StrutsMVC的区别.......................................................................................122
6.2SpringMVC的关键类说明...........................................................................................122
6.2.1通过HandlerMapping来指定处理的控制器类................................................123
6.2.2通过视图解析器处理响应结果.........................................................................127
6.2.3通过ModelAndView返回视图结果.................................................................129
6.2.4Spring的拦截器.................................................................................................131
6.3在SpringMVC方面你如何准备自己..........................................................................135
第7章通过ORM专注业务(基础篇)........................................................................138
7.1让你尽快掌握Hibernate................................................................................................138
7.1.1通过Hibernate完成ORM的具体步骤............................................................139
7.1.2通过Hibernate的注解方式实现ORM.............................................................144
7.1.3Hibernate里生成主键的方式............................................................................146
7.2Session对象在项目里的用法.......................................................................................150
7.2.1Session对象中的重要方法................................................................................150
7.2.2Session对象中的load和get方法的差别........................................................152
7.2.3Session缓存与三种对象状态............................................................................154
7.2.4FlushMode与清空缓存的时间点......................................................................157
7.3在Hibernate里执行复杂的查询...................................................................................158
7.3.1where、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.2Hibernate里的事件机制................................................................................................201
8.2.1在拦截器里放一些通用性的代码.....................................................................201
8.2.2事件系统和监听器.............................................................................................207
8.3Hibernate中的优化........................................................................................................212
8.3.1结合数据库大背景.............................................................................................212
8.3.2使用SessionFactory二级缓存..........................................................................213
8.3.3项目中常用的优化策略.....................................................................................218
8.4在Hibernate方面我们面试的方式...............................................................................218
第9章Spring整合数据库层面的应用...........................................................................221
9.1Spring与Hibernate的整合...........................................................................................221
9.1.1Spring整合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.1Struts、Spring与Hibernate的整合............................................................................238
10.1.1SSH整合案例的说明......................................................................................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基于SpringMVC的Web框架分析...........................................................................251
10.2.1SpringMVC案例的说明.................................................................................251
10.2.2在web.xml里定义使用SpringMVC.............................................................253
10.2.3编写整合Hibernate的xml文件和Model类.................................................254
10.2.4配置SpringMVC的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章
安装《Java Web轻量级开发面试教程》运行环境MyEclispe和MySQL的步骤
运行第一个JavaWeb程序
更换端口号,引入jar包和让开发环境支持中文
分享JavaWeb方面的学习经验
第2章
关于连接的讲解
在项目里建表的注意点
如何正确地创建和使用索引
JDBC代码的注意点
事务隔离级别的讲解
如何准备面试,数据库篇
第3章
简单JSP案例的讲解
JSP+Servlet的案例分析
简单JavaBean案例的讲解
基于JSP+Servlet+JavaBean+DB案例的讲解
第4章
开发一个简单的Struts案例
在Struts里加入验证器
通过配置文件实现Struts验证器
Struts拦截器的讲解
如何准备面试,Struts篇
第5章
SpringIoC的讲解
Spring面向接口编程
用单例和多例创建SpringBean
SpringAutoWireByName的讲解
通过注解实现Spring的IOC
SpringAOP的讲解
第6章
SpringMVC的讲解
通过HandlerMapping指定控制器
BeanNameUrlHandlerMapping用法说明
在SpringMVC里配置多个视图解析器
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整合案例的讲解
SpringMVC+Hibernate整理案例的讲解
在面试里,如何准备你的项目描述
第11章
面试流程的讲解
如何准备你的简历
面试前的准备
面试技巧的综合说明
如何在短时间内提升你自己的能力前言/序言
为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这《Java Web轻量级开发面试教程》,而不是自己通过查阅网络资料学习?我已经会开发JavaWeb程序了,有没有必要买这《Java Web轻量级开发面试教程》? 笔者有12年的Java经验,目前是某大型公司的架构师,知道软件公司对高级程序员的实际需求;而且笔者在大公司里有过5年的技术面试经验,面试过的人数上百,所以知道毕业生和初级程序员的普遍情况。笔者更有过5年多的Java培训经验,知道如何在短时间内把有毅力、有决心,但暂时缺乏技能经验的人培养成高级程序员的方法。
我在工作和培训中接触过不少刚走出校园的大学生和工作经验少于3年的初级程序员,发现他们虽然很上进,平时都会上网查找资料学习,但普遍会走弯路,比如学了目前用不到的知识点,或者对重要的知识点了解不深,或者干脆不知道该学哪些以及学习的进阶路线,这就导致他们掌握的技能和公司的需求(主要体现在面试上)不匹配。我也见过不少人项目经验足够,能力也不差,但他们就是通不过高级程序员的面试。
在JavaWeb方面,笔者从事了十多年的开发和培训工作,所以对于这方面的技术点,我大致知道哪些是不学就找不到工作,也知道哪些可以推迟到成功进阶后再学,更知道哪些可以不用了解。此外,我还从培训和带领毕业生和初级程序员的实践效果中总结出了一套适