第1章 开发第一个Java Web程序 1
1.1 Java Web开发运行环境的建立 1
1.1.1选择开发Java Web代码的IDE 1
1.1.2 Tomcat的安装、设置和运行 2
1.2部署和运行第一个Java Web代码 4
1.2.1部署Java Web模块到服务器中 4
1.2.2运行Tomcat中的程序 5
1.2.3解析Web模块的结构 5
1.3开发Servlet程序 6
1.3.1编写Servlet的代码 6
1.3.2解析Web模块的URL结构 10
1.3.3解析web.xml配置文件 10
1.3.4巧妙利用Java Web模块的欢迎文件 12
1.4 Servlet产生其他类型的网页内容 13
1.4.1产生Excel表格 13
1.4.2产生XML文件 14
1.5 Java Web和Java EE技术概况 15
第2章 例解Servlet核心语法 18
2.1解析Servlet的运行机制和生命期 18
2.1.1 Servlet的生命期方法 18
2.1.2 Servlet的初始化顺序 22
2.1.3 Servlet的getServletInfo方法 22
2.2解析Servlet的表单处理 22
2.2.1 GET方法提交的表单 23
2.2.2 POST方法提交的表单 24
2.2.3得到表单中所有的数据 25
2.2.4 HTML各种组件和Servlet的处理方法 26
2.3解析HTTP的Request、 Response和Header信息 31
2.3.1运行本节的代码 31
2.3.2 HTTP Request和HTTPResponse的格式 37
2.3.3 HTTP Request和HTTPResponse的头部信息 38
2.4解析Servlet的运行环境Context 38
2.4.1 ServletConfig和Servlet初始化参数 40
2.4.2 ServletContext及其属性 41
2.4.3 Servlet的日志 42
2.4.4 Context的初始化参数 43
2.4.5 Context中的其他方法 43
2.5解析Cookie 44
2.5.1 Cookie的浏览器设置 44
2.5.2 Cookie的组成 45
2.5.3添加和显示Cookie 46
2.5.4删除Cookie 48
2.5.5 Cookie的用途示例——识别用户 49
2.6解析 Session 52
2.6.1 Session的概念 52
2.6.2 Session入门 54
2.6.3简易购物车的开发 56
2.6.4 URL Rewriting控制Session 58
2.6.5 Hidden Field(隐藏域)控制Session 62
2.7解析Servlet的Include.Forward和Redirect方法 65
2.7.1 Forward方法 65
2.7.2 Redirect方法 70
2.7.3 Include方法 71
2.8小结:Servlet的Scope和共享数据 73
2.9解析Servlet的Listener 75
2.9.1 Servlet中的事件处理机制 75
2.9.2 Servlet中的事件类型和配置 80
2.9.3 Listener的配置 80
2.9.4 Listener的运行 80
2.10解析Servlet的Filter 83
2.10.1 Filter的编写方法 83
2.10.2 Filter的配置 85
2.10.3 Servlet和Filter的运行 87
2.11解析Servlet的数据同步 87
第3章 例解JSP核心语法 90
3.1 JSP快速入门 90
3.1.1开发第一个JSP程序 90
3.1.2解析JSP文件在Web模块中的位置和配置 91
3.1.3 JSP基本语法分类 92
3.1.4 JSP注释标记 95
3.1.5 JSP声明标记 95
3.1.6 JSP表达式标记 95
3.1.7 JSP小脚本代码标记 96
3.1.8 JSP指令标记 97
3.2解析JSP生命期和运行机制 99
3.2.1 JSP到Servlet的翻译 99
3.2.2 JSP的生命期 105
3.2.3 JSP的隐含变量 105
3.2.4 JSP的Scope 109
3.2.5 JSP的写作风格 110
3.3解析JSP高级语法 111
3.3.1动态属性表达式 111
3.3.2 JSP的静态和动态包含(Include) 112
3.3.3 JSP的转向(Forward) 115
3.3.4 JSP的异常处理 116
3.3.5 JSP产生其他类型的网页 119
3.3.6开发自定义标记(Tag) 121
3.4解析JSP和Java Bean的关系 125
3.4.1 Java Bean在JSP中的开发和访问方法 125
3.4.2 Java Bean与表单的对应 130
3.4.3 Java Bean和数据共享 133
3.5解析日志在Web开发中的应用 140
3.5.1 Servlet中的日志 140
3.5.2 Log4j日志包 141
3.5.3 JDK中的日志 143
3.6解析JSP的Express Language 146
3.6.1 Express Language(EL)语法 146
3.6.2 Express Language和Java Bean 150
3.6.3 Express Language的隐含变量 152
3.6.4 Express Language访问复杂Java Bean 155
第4章 例解数据库访问技术 159
4.1 JDBC基础 159
4.1.1 JDBC驱动程序的类型 159
4.1.2 SQL语句的类型 159
4.1.3 JDBC驱动程序的安装和测试 160
4.2 Java Web访问数据库 163
4.2.1 Servlet访问数据库 163
4.2.2 JSP访问数据库 166
4.3使用数据源JNDI访问数据库 168
4.3.1 Tomcat数据源的设置 168
4.3.2开发使用数据源的程序 169
4.3.3数据源JNDI和服务器的Context 171
4.4访问Oracle数据库 172
4.4.1 Oracle的JDBC驱动程序 172
4.4.2调用PL/SQL函数和过程 173
4.5访问DB2数据库 177
第5章 例解Web Security安全控制 180
5.1安全语和Java的安全技术 180
5.1.1安全术语 180
5.1.2 Java Web的安全实现技术 181
5.2 Declarative方式的安全技术实现 181
5.2.1 Tomcat和其他服务器上的安全设置 181
5.2.2 BASIC和DIGEST的用户验证实例 182
5.2.3自定义FORM用户验证实例 185
5.3 Programmatic方式的安全技术实现 188
第6章 例解JSP标准标记库(JSTL) 192
6.1解析JSTL的核心标记 192
6.1.1 c:out标记(输出变量的值) 193
6.1.2 c:set(建立和改变变量的值) 196
6.1.3 c:remove(删除变量) 199
6.1.4 c:catch(捕获异常) 200
6.1.5 c:if(条件判断) 202
6.1.6 c:choose(多重判断) 203
6.1.7 c:forEach(循环) 205
6.1.8 c:forToken(Token处理) 206
6.1.9 c:url(URL对象) 207
6.1.10 c:import(导入网页) 208
6.1.11 c:redirect(网页转向) 210
6.2解析JSTL的SQL处理标记 211
6.3解析国际化和数据的格式化 212
6.3.1 Servlet的中文处理 213
6.3.2 JSP的中文处理 216
6.3.3网页的国际化 216
6.3.4数字和日期的格式化 221
6.4解析JSTL的XML处理标记 225
6.4.1 Java有关的XML API 226
6.4.2 XML处理入门 227
6.4.3 JSTL中的XPath语法 229
6.4.4 XSLT语法基础 233
6.4.5 JSTL的XSLT支持 242
6.5 JSP标记处理HTML组件 247
6.5.1 HTML组件和JSP的处理方法 247
6.5.2 JSP动态生成HTML组件 251
第7章 开发MVC结构的网上书店实例 255
7.1解析MVC结构 255
7.2 MVC入门 256
7.2.1实例的运行和组成 256
7.2.2开发JSP程序 258
7.2.3开发Java Bean代码 258
7.2.4开发Controller代码 260
7.3开发最简单的网上书店 262
7.3.1实例的运行和组成 262
7.3.2开发Java Bean的代码 266
7.3.3开发Controller的代码 272
7.3.4开发JSP程序 275
7.4开发数据库支持的网上书店 282
7.4.1数据库的建立 283
7.4.2开发Java Bean类 283
7.4.3开发Controller的代码 286
7.4.4开发JSP程序 286
7.4.5更多的改进 287
第8章 例解Java Server Faces 290
8.1开发第一个JSF程序 290
8.1.1开发JSF网页 291
8.1.2开发JSF的Java Bean 293
8.1.3开发JSF的配置文件 295
8.2解析JSF的生命期 299
8.3解析JSF基础语法 300
8.3.1动态Navigation 300
8.3.2基本HTML标记 302
8.3.3 JSF国际化 306
8.3.4 Select类型的JSF标记 309
8.3.5 f:param和f:attribute标记 314
8.3.6 JSF和JavaScript 317
8.4解析JSF的h:dataTable标记 319
8.4.1 h:dataTable入门 319
8.4.2完全在配置文件中定义的Java Bean 322
8.4.3 h:dataTable和数据库 324
8.4.4 h:dataTable的datamodel功能 328
8.5解析JSF的Validator和Converter标记 332
8.5.1 JSF的Validator 333
8.5.2 JSF的Convertor 337
8.6解析JSF的事件处理机制 339
8.6.1 ValueChange事件 339
8.6.2 Action事件 343
8.7开发以JSF实现的网上书店 344
8.7.1数据库的建立 346
8.7.2配置文件的设置 346
8.7.3开发Java Bean类 347
8.7.4开发JSP网页 356
8.7.5小结和问题 362
第9章 例解ORM框架在Web开发中的应用 363
9.1解析iBatis技术 363
9.1.1 iBatis的数据库连接配置文件 364
9.1.2 iBatis的Java Bean和SQL语句映射配置文件 365
9.1.3开发iBatis的测试程序 366
9.1.4开发应用iBatis的网上书店 371
9.2解析Hibernate技术 375
9.2.1 Hibernate的下载和安装 375
9.2.2开发第一个Hibernate程序 375
9.2.3开发应用Hibernate的在线书店实例 379
第10章 例解Spring框架在Web开发中的应用 382
10.1解析Spring基础 383
10.1.1 Spring结构 383
10.1.2开发第一个Hello World程序 384
10.1.3 Dependency Injection或IoC详解 388
10.1.4进一步了解Spring的Wiring 392
10.1.5 Spring的继承 398
10.2解析Spring对数据库访问的支持 399
10.2.1 Spring对JDBC的支持 400
10.2.2 Spring和属性文件 404
10.2.3 Spring和iBatis的集成 405
10.2.4 Spring和Hibernate的集成 408
10.3解析Spring和Java Web的集成 411
10.3.1 Spring和Servlet/JSP的集成 411
10.3.2 Spring和JSF的集成 414
10.3.3开发Spring+iBatis支持的在线书店 417
10.4解析Spring和EJB的集成 421
10.4.1 Spring和EJB 2.x的集成 421
10.4.2 Spring和EJB 3的集成 427
第11章 例解软件开发分析和设计模式 430
11.1软件开发过程和方法学 430
11.2软件设计的工具——UML 431
11.2.1 Use Case图 432
11.2.2 Activity图 433
11.2.3 Sequence图 434
11.2.4 Collaboration图 435
11.2.5 Statechart图 436
11.2.6 Class图 436
11.2.7 Object图 440
11.2.8 Package图 440
11.2.9 Component/Deployment图 440
11.2.10 Java类之间的关系小结 441
11.3例解设计模式 443
11.3.1设计模式的基本原则和模式分类 443
11.3.2解析Factory模式 445
11.3.3解析Singleton模式 448
11.3.4解析Builder模式 451
11.3.5解析Adapter模式 454
11.3.6解析Decorator模式 457
11.3.7解析Facade模式 461
11.3.8解析Proxy模式 463
11.3.9解析Iterator模式 466
11.3.10解析Template模式 471
11.3.11解析Command模式 473
11.3.12解析Observer模式 477
11.3.13解析Strategy模式 480
11.3.14 J2EE模式简介 482
11.3.15 设计模式小结 484
11.4应用设计思想改进网上书店 486
11.4.1数据库访问的修改 487
11.4.2改善对象和类之间的依赖关系 491
附录A Eclipse+MyEclipse环境下的Java Web开发 495
A.1 Eclipse+MyEclipse的下载、安装和注册 495
A.2 Eclipse+MyEclipse界面基础 497
A.2.1 Perspective和View 497
A.2.2工程、文件和视图 499
A.2.3界面外观的设置 500
A.2.4 Preferences设置窗口 501
A.2.5工程的设置窗口 501
A.3开发第一个Java Web程序 503
A.3.1建立Web Project工程 503
A.3.2建立Servlet 506
A.3.3用内置Tomcat服务器运行 510
A.3.4内置Tomcat服务器的设置和运行 513
A.4与外部服务器的集成 514
A.5 Web代码的打包 516
A.6 Web代码的部署 518