标题：从零开始学JavaWeb开发
图书信息
书名：从零开始学Java Web开发  作者：孙更新  等编著
ISBN：978-7-121-12295-8
出版日期：2011年2月 
定价：45.00元（含DVD光盘1张）
内 容 简 介
Java Web是目前最流行的动态网页开发技术之一。本书由浅入深、循序渐进，使零基础的读者能够熟练掌握如何使用Java Web开发应用程序系统。
本书分为4部分，第一部分是Java语言基础篇，包括Java基本语法、开发环境的安装和配置、Java面向对象思想等基础知识。第二部分是JSP技术篇，包括JSP基本语法、JSP内置对象、JSP与JavaBean、JSP与JDBC、Serverlet过滤器和监听器的使用、用户自定义标签的开发、EL表达式语言、标准标签库JSTL。第三部分是Java Web框架篇，包括Struts框架的使用、Hibernate框架的使用、Spring框架的使用。第四部分是Java Web开发实战篇，选取两个实际的商业化应用程序进行分析，使读者能够真正掌握商业化应用程序开发的精髓。
本书内容精练、重点突出、实例丰富，是广大Web网站开发人员、网站管理维护人员必备的参考书，同时也非常适合大、中专院校师生学习阅读，也可作为高等院校计算机及相关专业的教材使用。
前  言
Java技术与Web服务之间没有界限。
——James Gosling（Java技术之父）
随着当今信息技术的飞速发展和Internet的普及，人们越来越依靠网络技术来架构自己的个人网站或者组建企业的门户网站，从而实现各种价值、业务和功能，进行网上的营销、交流和宣传。Java Web基于强大的Java语言，从最初的Servlet，发展到后来的JSP，再到以Struts、Hibernate、Spring等为代表的框架，吸引着许多Web开发人员的眼球。Java Web开发在可重用性和安全方面得到很好的保证，架构网站变得越来越方便和快捷。今天，已经有越来越多的人使用Java Web技术设计高效的电子商务和电子政务系统，开发各种中间交易系统，创建高水平的企业网站。
为了方便广大读者学习，作者结合自己十多年的Java Web项目开发和培训经验写作了本书。本书全面地介绍了Java基础、JSP、JavaBean、Servlet、SSH等技术，并以实例介绍了架构Java Web站点所采用的工具和组件。本书力求让读者学完后有开发实际商业化项目的本领。
本书的特点
本书的主要特点如下：
内容丰富，知识全面。全书共分4篇17章，采用从易到难、循序渐进的方式进行讲解。内容几乎涉及到了Java Web程序开发的各个方面。
循序渐进，由浅入深。为了方便读者学习，本书首先让读者了解JSP，并掌握开发JSP动态网站所需的开发环境和工具。读者在掌握开发环境和工具的基础上，逐渐学习Java Web更深的知识SSH，掌握网站系统构建。从而读者可以边学习，边动手，更快地掌握Java Web各种知识。
格式统一，讲解规范。书中每个例程都采用了分步骤的实现方法。这样使得读者可以很清晰地知道每个技术的具体实现步骤，从而提高学习的效率。
对比讲解，理解深刻。由于Java Web相关技术较多，很多读者无所适从，无从下手。本书通过对比讲解的方式，帮助读者解决这个问题。本书在第8、13、14、15章分别使用4种技术实现用户登录系统，并进行相应的对比。通过对比讲解，读者可以对这几种技术有更深入的理解。
案例精讲，深入剖析。根据作者本人多年的项目经验，Java Web系统开发万变不离其宗，一通百通。所以本书没有像其他书籍一样使用多个案例讲解。本书选取了两个最典型的案例，对系统做整体分析，让读者对系统有整体把握。然后通过对开发过程及知识点的详细讲解，使读者可以真正掌握系统开发的精髓。
1. 清晰的体例结构
实例  书中出现的完整实例，以章节顺序编号，便于检索和循序渐进地学习、实践，放在每节知识点介绍之后。
实例代码  与实例编号对应，层次清楚、语句简洁、注释丰富，体现了代码优美的原则，有利于读者养成良好的代码编写习惯。对于大段程序，均在每行代码前设定编号便于学习。
代码解析  对代码中的关键点进行分析，帮助读者更直观地理解代码的实际含义。
知识点介绍  准确、清晰是其显著特点，一般放在每一节开始位置，让零基础的读者了解相关概念，顺利入门。
贴心的提示  为了便于读者阅读，全书还穿插着一些提示、注意等小贴士，体例约定如下：
提示：通常是一些贴心的提醒，让读者加深印象或提供建议，或者解决问题的方法。
注意：提出学习过程中需要特别注意的一些知识点和内容，或者相关信息。
习题  每章最后提供专门的测试习题，供读者检验所学知识是否牢固掌握，题目的提示或答案放在光盘中。
经作者多年的培训和授课证明，以上讲解方式是最适合初学者学习的方式，读者按照这种方式，会非常轻松、顺利地掌握本书知识。
2．实用超值的DVD光盘
为了帮助读者比较直观地学习，本书附赠DVD光盘，内容包括多媒体视频、电子教案（PPT）和实例源代码等。
 多媒体视频
配有长达19小时手把手教学视频，讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示，手把手教会读者使用。
 电子教案（PPT）
本书可以作为高校相关课程的教材或课外辅导书，所以笔者特别为本书制作了电子教案（PPT），以方便老师教学使用。
3．提供完善的技术支持
本书提供了论坛，读者可以在上面提问交流。另外，论坛上还有一些小的教程、视频动画和各种技术文章，可帮助读者提高开发水平。
4．丰富的额外素材下载
相关的开发素材文件提供下载。
适合阅读本书的读者
希望进入Web开发领域的新手。
Java学习人员。
JSP入门者。
从事JSP编程的Web开发人员。
想使用Java开发网络应用的人员。
想自学制作网站的网络爱好者。
大、中专院校的学生。
本书作者
本书主要由孙更新编写。其他参与本书编写的人员有昊燃、刘永纯、曾光、张双、朱照华、黄永湛、孟祥嵩、张贺军、李勇、关涛、王岩、李晓白、魏星、刘蕾等，在此一并表示感谢！
编著者
目  录
第一篇  Java语言基础
第1章  初识Java语言（教学视频：29分钟）    11
1.1  Java语言概述    11
1.1.1  Java语言的产生    11
1.1.2  Java语言的发展    11
1.1.3  Java语言的特性    12
1.2  JDK的安装和配置    13
1.2.1  JDK 6.0的安装    13
1.2.2  JDK 6.0的配置    14
1.3  MyEclipse集成开发环境    15
1.3.1  MyEclipse的安装和启动    16
1.3.2  MyEclipse的使用    17
1.4  第一个Java应用——HelloWorld    22
1.4.1  Java应用的创建    22
1.4.2  Java应用的基本结构    23
1.4.3  Java应用的运行    25
1.5  小结    25
1.6  习题    25
第2章  Java基础语法（教学视频：57分钟）    26
2.1  Java标识符和关键字    26
2.1.1  标识符    26
2.1.2  关键字    27
2.1.3  分隔符和注释    27
2.2  数据类型    28
2.2.1  基本数据类型    28
2.2.2  引用数据类型    30
2.2.3  数据类型间的转换    30
2.3  变量与常量    31
2.3.1  变量的命名规范    31
2.3.2  变量的声明    32
2.3.3  变量的赋值    32
2.3.4  变量的作用域    32
2.3.5  常量的概念与使用    33
2.4  运算符与表达式    34
2.4.1  算术运算符    34
2.4.2  关系运算符    35
2.4.3  逻辑运算符    36
2.4.4  赋值运算符    36
2.4.5  位运算符    37
2.4.6  条件运算符    37
2.4.7  运算符的优先级    38
2.4.8  表达式    38
2.5  程序基本结构    38
2.5.1  分支语句    39
2.5.2  循环语句    43
2.5.3  跳转语句    45
2.6  数组    46
2.6.1  一维数组    46
2.6.2  多维数组    48
2.7  小结    49
2.8  习题    49
第3章  Java面向对象编程（教学视频：49分钟）    51
3.1  类和对象    51
3.1.1  Java类定义    51
3.1.2  类的成员变量和成员方法    52
3.1.3  类的构造函数    53
3.1.4  对象的创建和使用    54
3.1.5  类的封装    56
3.1.6  包的创建和使用    59
3.2  类的继承性    60
3.2.1  类的继承    60
3.2.2  方法的重载和覆盖    62
3.2.3  抽象类和最终类    63
3.3  接口    65
3.3.1  接口的定义    65
3.3.2  接口的实现    66
3.3  小结    67
3.4  习题    68
第二篇  JSP基本知识
第4章  JSP基本语法（教学视频：80分钟）    70
4.1  JSP简介    70
4.1.1  JSP的形成与发展    70
4.1.2  JSP的运行机制    72
4.1.3  Tomcat服务器的安装与配置    72
4.1.4  MyEclipse中集成Tomcat服务器    75
4.1.5  MyEclipse中创建JSP页面    76
4.1.6  MyEclipse中发布和运行Web项目    77
4.2  JSP页面的基本结构    78
4.3  JSP中的Java片断代码    79
4.3.1  注释    79
4.3.2  程序段    80
4.3.3  声明    80
4.3.4  表达式    81
4.4  JSP中的编译指令    82
4.4.1  page指令    82
4.4.2  include指令    84
4.4.3  taglib指令    86
4.5  JSP中的动作指令    86
4.5.1  <jsp:include>动作指令    86
4.5.2  <jsp:forward>动作指令    87
4.5.3  <jsp:param>动作指令    88
4.6  小结    89
4.7  习题    89
第5章  JSP内置对象（教学视频：98分钟）    90
5.1  JSP内置对象概述    90
5.2  request内置对象    91
5.2.1  获取用户提交的表单信息    91
5.2.2  获取服务器端和客户端信息    92
5.2.3  获取HTTP协议的传送文件头信息    94
5.2.4  request中保存和读取共享数据    95
5.2.5  正确接收用户提交的中文信息    96
5.3  response内置对象    97
5.3.1  response实现页面转向    97
5.3.2  动态设置页面返回的MIME类型    98
5.3.3  设置HTTP协议的传送文件头信息    100
5.4  out内置对象    101
5.5  session内置对象    102
5.5.1  获取session的ID    102
5.5.2  使用URL重写支持session    104
5.5.3  session中保存和读取共享数据    106
5.5.4  session的生命周期    107
5.6  application内置对象    108
5.7  其他内置对象    109
5.7.1  pageContext内置对象    109
5.7.2  config内置对象    110
5.7.3  exception内置对象    112
5.7.4  page内置对象    112
5.8  小结    113
5.9  习题    113
第6章  JSP与JavaBean（教学视频：41分钟）    114
6.1  JavaBean的定义    114
6.2  JSP与JavaBean交互的动作指令    115
6.2.1  <jsp:useBean>动作指令    115
6.2.2  <jsp:getProperty>动作指令    118
6.2.3  <jsp:setProperty>动作指令    118
6.3  常用第三方JavaBean组件    122
6.3.1  jspSmartUpload组件    122
6.3.2  JavaMail组件    125
6.3.3  JFreeChart组件    130
6.4  小结    133
6.5  习题    133
第7章  JSP与JDBC（教学视频：97分钟）    134
7.1  JDBC概述    134
7.2  建立数据库连接    135
7.2.1  JDBC的驱动程序类型    135
7.2.2  驱动程序管理类DriverManager    136
7.2.3  数据库连接接口Connection    137
7.3  执行数据库操作    138
7.3.1  SQL声明接口Statement    138
7.3.2  预编译声明接口PreparedStatement    141
7.3.3  存储过程执行接口CallableStatement    142
7.4  查询数据库结果集    144
7.4.1  结果集接口ResultSet    145
7.4.2  可滚动和可更新的结果集    146
7.5  行集    148
7.6  数据库事务处理    150
7.7  数据库连接池    151
7.7.1  数据库连接池原理    151
7.7.2  Tomcat中数据连接池的配置    152
7.8  小结    153
7.9  习题    153
第8章  Servlet编程
（教学视频：100分钟）    155
8.1  Servlet简介    155
8.2  Servlet的生命周期    155
8.3  Servlet程序结构    156
8.3.1  init()方法    157
8.3.2  service()方法    159
8.3.3  destory()方法    162
8.4  Servlet的配置    163
8.4.1  <servlet>元素及其子元素    163
8.4.2  <servlet-mapping>元素及其子元素    164
8.5  Servlet的会话跟踪    167
8.5.1  获取HttpSession对象    168
8.5.2  使HttpSession对象与属性关联    168
8.6  Servlet的请求转发    170
8.7  小结    174
8.8  习题    174
第9章  过滤器和监听器
（教学视频：36分钟）    175
9.1  过滤器    175
9.1.1  过滤器的定义    176
9.1.2  过滤器的配置    177
9.2  监听器    180
9.2.1  监听器的定义    181
9.2.2  监听器的配置    182
9.3  小结    186
9.4  习题    186
第10章  用户自定义标签
（教学视频：59分钟）    187
10.1  自定义标签概述    187
10.2  自定义标签声明    188
10.3  标签库描述符文件    189
10.4  标签处理器    190
10.5  自定义空标签    191
10.6  自定义体标签    194
10.7  自定义嵌套标签    196
10.8  小结    199
10.9  习题    200
第11章  EL表达式语言
（教学视频：41分钟）    201
11.1  EL表达式语言概述    201
11.2  EL表达式语言基本语法    202
11.2.1  .与 [ ] 运算符    202
11.2.2  EL变量    202
11.2.3  自动类型转换    203
11.2.4  EL中的保留字    203
11.2.5  EL中的运算符    204
11.3  EL表达式语言的内置对象    205
11.3.1  与范围有关的内置对象    206
11.3.2  与输入参数有关的内置对象    206
11.3.3  其他内置对象    208
11.4  EL表达式语言中的函数    209
11.4.1  自定义函数的逻辑处理类    210
11.4.2  自定义函数的描述符文件    210
11.5  小结    212
11.6  习题    212
第12章  JSTL标签库（教学视频：105分钟）    213
12.1  JSTL标签库概述    213
12.2  JSTL核心标签库    214
12.2.1  表达式操作标签    214
12.2.2  流程控制标签    219
12.2.3  迭代操作标签    222
12.2.4  URL相关操作标签    225
12.3  JSTL格式化标签库    226
12.3.1  国际化标签    227
12.3.2  消息标签    228
12.3.3  数字日期格式化标签    231
12.4  JSTL SQL标签库    234
12.4.1  建立数据源连接标签    234
12.4.2  数据库操作标签    235
12.5  JSTL XML标签库    240
12.5.1  核心操作标签    240
12.5.2  流程控制操作标签    241
12.5.3  转换操作标签    242
12.6  JSTL 函数标签库    245
12.6.1  字符串处理标签    246
12.6.2  获取对象长度标签    249
12.7  小结    250
12.8  习题    250
第三篇  Java Web框架
第13章  Struts框架的开发及应用（教学视频：44分钟）    251
13.1  Struts框架概述    251
13.1.1  MVC设计模式    251
13.1.2  Struts框架工作原理    252
13.1.3  Struts框架执行流程    252
13.2  MyEclipse创建基于Struts框架的项目    253
13.2.1  创建Struts项目    253
13.2.2  Struts组件向导    254
13.2.3  Struts配置文件编辑器    257
13.3  Struts应用实例：登录系统    258
13.4  小结    264
13.5  习题    264
第14章  Hibernate框架的开发及应用（教学视频：37分钟）    265
14.1  Hibernate框架概述    265
14.1.1  O/R Mapping（对象/关系映射）技术    265
14.1.2  Hibernate框架的作用    266
14.1.3  Hibernate框架与JDBC技术的比较    266
14.1.4  Hibernate框架的工作流程    267
14.2  MyEclipse创建基于Hibernate框架的项目    269
14.2.1  创建Hibernate项目    269
14.2.2  创建Hibernate配置文件    271
14.2.3  创建Hibernate使用的数据库连接    271
14.2.4  创建SessionFactory类    272
14.2.5  使用Hibernate配置文件编辑器    272
14.2.6  使用反向工程生成持久化对象、映射文件和DAO类    273
14.2.7  使用Hibernate功能    276
14.3  Hibernate应用实例：基于Struts +Hibernate的登录系统    277
14.4  小结    282
14.5  习题    282
第15章  Spring框架的开发及应用（教学视频：38分钟）    283
15.1  Spring框架概述    283
15.2  Spring框架中的IoC编程    284
15.2.1  控制反转的原理    285
15.2.2  控制反转中的主要组件    285
15.2.3  控制反转中的依赖注入方式    286
15.3  Spring框架中的AOP编程    287
15.3.1  面向切面编程的原理    287
15.3.2  面向切面编程中的主要概念    287
15.4  使用MyEclipse实现Spring框架中的IoC编程    288
15.4.1  创建Spring项目    288
15.4.2  创建Bean类    289
15.4.3  配置Bean类    290
15.4.4  编写测试代码    291
15.5  使用MyEclipse实现Spring框架中的AOP编程    292
15.5.1  向项目添加AOP支持包    292
15.5.2  创建Bean类    292
15.5.3  创建前置通知类    293
15.5.4  装配拦截器和配置Bean类    294
15.5.5  编写测试代码    294
15.6  Spring整合Struts框架    295
15.6.1  使用ActionSupport类整合Struts    295
15.6.2  覆盖RequestProcessor类整合Struts    297
15.6.3  将Action管理委托给Spring框架    298
15.7  Spring整合Hibernate框架    300
15.7.1  创建Hibernate+Spring项目    300
15.7.2  反向工程生成Spring整合Hibernate的DAO    302
15.8  基于Spring与Struts、Hibernate整合的登录系统    303
15.9  小结    308
15.10  习题    308
第四篇  Java Web开发实战
第16章  基于JSP的视频点播系统（教学视频：7分钟）    309
16.1  系统需求分析    309
16.2  系统数据库设计    309
16.3  系统设计与实现    311
16.3.1  视频显示及播放模块的实现    311
16.3.2  系统管理模块的实现    316
16.4  小结    321
16.5  习题    321
第17章  基于Struts+Spring+Hibernate框架的网上课堂
（教学视频：14分钟）    322
17.1  系统需求分析    322
17.2  系统数据库设计    323
17.2.1  课程管理模块的数据表    324
17.2.2  专家门诊模块的数据表    325
17.2.3  公告管理模块的数据表    326
17.2.4  系统管理模块的数据表    327
17.3  项目创建与配置    328
17.3.1  创建项目    328
17.3.2  创建数据库    329
17.3.3  生成POJO和 *.hbm.xml    330
17.3.4  web.xml配置文件    330
17.3.5  Struts框架的配置文件    332
17.3.6  Spring框架的配置文件    333
17.4  系统公共模块    333
17.4.1  系统主页面    333
17.4.2  导航菜单页面    334
17.4.3  系统公用页面    335
17.4.4  系统配置文件    337
17.5  课程管理模块的实现    337
17.5.1  视图层的实现    337
17.5.2  控制层的实现    341
17.5.3  业务逻辑层的实现    344
17.5.4  DAO层的实现    346
17.5.5  持久层的实现    347
17.5.6  Spring框架的配置    350
17.6  小结    351
17.7  习题    351