第1章Servlet与Tomcat 2
1.1 Web技术的发展 2
1.2 Servlet与Servlet容器 4
1.3 Servlet容器的分类 5
1.4 Tomcat简介 6
1.5 Tomcat的安装与配置 7
1.5.1 Tomcat的目录结构 8
1.5.2运行Tomcat 9
1.5.3 Tomcat启动分析 13
1.6 Tomcat的体系结构 15
1.7 Tomcat的管理程序 18
1.8小结 20
第2章Servlet技术 21
2.1 Servlet API 21
2.1.1 Servlet接口 22
2.1.2 ServletRequest和ServletResponse 23
2.1.3 ServletConfig 26
2.1.4一个简单的Servlet 27
2.1.5 GenericServlet 34
2.1.6 HttpServlet 35
2.1.7 HttpServletRequest和HttpServletResponse 37
2.2几个实例 40
2.2.1实例一:WelcomeServlet 40
2.2.2实例二:OutputInfoServlet 47
2.2.3实例三:LoginServlet 51
2.3 S ervlet异常 56
2.3.1 ServletException类 56
2.3.2 UnavailableException类 56
2.4 Servlet生命周期 57
2.5 Servlet上下文 59
2.5.1 ServletContext接口 59
2.5.2页面访问量统计实例 61
2.6请求转发 65
2.6.1 RequestDispatcher接口 65
2.6.2得到RequestDispatcher对象 66
2.6.3请求转发的实例 67
2.6.4 sendRedirect()和forward()方法的区别 73
2.7小结 74
第3章Web应用程序的部署 75
3.1配置任意目录下的Web应用程序 75
3.2 WAR文件 78
3.3与Servlet配置相关的元素 81
3.3.1 〈servlet〉元素及其子元素 81
3.3.2 〈servlet-mapping〉元素及其子元素 83
3.4一个实例 85
3.5小结 89
第4章 数据库访问 90
4.1 JDBC驱动程序的类型 91
4.1.1 JDBC-ODBC桥 91
4.1.2部分本地API部分Java驱动程序 92
4.1.3 JDBC网络纯Java驱动程序 92
4.1.4本地协议的纯Java驱动程序 92
4.2安装数据库 93
4.3下载MySQL JDBC驱动 96
4.4 JDBC API 97
4.4.1加载并注册数据库驱动 97
4.4.2建立到数据库的连接 100
4.4.3访问数据库 101
4.4.4事务处理 131
4.4.5可滚动和可更新的结果集 140
4.5 JDBC数据源和连接池 143
4.6 MySQL对中文的处理 148
4.7小结 148
第5章 会话跟踪 149
5.1用于会话跟踪的技术 150
5.1.1 SSL会话 150
5.1.2 Cookies 151
5.1.3 URL重写 152
5.2 Java Servlet API的会话跟踪 152
5.2.1 HttpSession接口 153
5.2.2 Session的生命周期 154
5.2.3 Cookie的应用 168
5.2.4 Session和Cookie的深入研究 176
5.3 Session的持久化 179
5.4小结 180
第6章Servlet的异常处理机制 181
6.1声明式异常处理 182
6.1.1 HTTP错误代码的处理 182
6.1.2 Java异常的处理 186
6.2程序式异常处理 189
6.2.1在try-catch语句中处理异常 189
6.2.2使用RequestDispatcher来处理异常 192
6.3小结 195
第7章 开发线程安全的Servlet 196
7.1多线程的Servlet模型 196
7.2线程安全的Servlet 197
7.2.1变量的线程安全 197
7.2.2属性的线程安全 206
7.3 SingleThreadModel接口 209
7.4小结 210
7.5思考题 210
第8章JSP技术 212
8.1 JSP简介 212
8.2 JSP的运行机制 213
8.3 JSP的语法 217
8.3.1指令元素(directiveelement) 218
8.3.2脚本元素(scnpting element) 223
8.3.3动作元素(action element) 225
8.3.4注释 233
8.4 JSP的隐含对象 234
8.4.1 pageContext 234
8.4.2 out 235
8.4.3 page 236
8.4.4 exception 236
8.5对象和范围 237
8.6留言板程序 240
8.7留言板管理程序 249
8.8 JSP文档 255
8.8.1 JSP文档的标识 256
8.8.2 JSP文档中的元素语法 256
8.9小结 260
第9章JSP与JavaBean 261
9.1 JavaBean简介 261
9.1.1属性的命名 262
9.1.2属性的类型 264
9.2在JSP中使用JavaBean 265
9.2.1 〈jsp:useBean〉 265
9.2.2 〈jsp:setProperty〉 266
9.2.3 〈jsp:getProperty〉 267
9.2.4示例 267
9.3网上书店程序 272
9.4小结 296
第10章JSP开发的两种模型 297
10.1模型1 297
10.2模型2 301
10.3 MVC模式的实现总结 308
10.4小结 308
第11章 标签库(Tag Library) 309
11.1标签库API 309
11.1.1标签的形式 309
11.1.2 Tag接口 311
11.1.3 IterationTag接口 312
11.1.4 BodyTag接口 314
11.2标签库描述符 315
11.2.1 〈taglib〉元素 316
11.2.2 〈validator〉元素 317
11.2.3 〈listener〉元素 318
11.2.4 〈tag〉元素 318
11.2.5 〈tag-file〉元素 321
11.2.6 〈function〉元素 322
11.3传统标签的开发 323
11.3.1实例一:〈hello〉标签 323
11.3.2实例二:〈max〉标签 326
11.3.3实例三:〈greet〉标签 329
11.3.4实例四:〈switch〉标签 332
11.3.5实例五:〈iterate〉标签 336
11.4简单标签的开发 342
11.4.1SimpleTag接口 343
11.4.2实例一:〈welcome〉标签 344
11.4.3实例二:〈max ex〉标签 346
11.5自定义标签开发总结 348
11.6小结 348
第12章 表达式语言(EL) 349
12.1语法 349
12.1.1“[]”和“.”操作符 349
12.1.2算术操作符 350
12.1.3关系操作符 351
12.1.4逻辑操作符 351
12.1.5 Empty操作符 351
12.1.6条件操作符 351
12.1.7圆括号 351
12.1.8操作符的优先级 352
12.2隐含对象 352
12.3命名变量 354
12.4保留的关键字 354
12.5函数 354
12.6小结 355
第13章JSP标准标签库(JSTL) 356
13.1 JSTL简介 356
13.2配置JSTL 357
13.3 Core标签库 358
13.3.1.般用途的标签 358
13.3.2条件标签 363
13.3.3迭代标签 366
13.3.4URL相关的标签 369
13.4 118N标签库 374
13.4.1国际化标签 374
13.4.2格式化标签 380
13.5 SQL标签库 390
13.5.1 〈sql:setDataSource〉 390
13.5.2 〈sql:query〉 391
13.5.3 〈sql:param〉 394
13.5.4 〈sql:dateParam〉 395
13.5.5 〈sql:update〉 396
13.5.6 〈sql:transaction〉 398
13.6 XML标签库 399
13.6.1核心操作 400
13.6.2流程控制 403
13.6.3转换操作 407
13.7 Functions标签库 409
13.7.1 fn:contains 410
13.7.2 fn:containsIgnoreCase 410
13.7.3 fn:startsWith 411
13.7.4 fn:endsWith 412
13.7.5 fn:indexOf 413
13.7.6 fn:replace 413
13.7.7 fn:substring 414
13.7.8 fn:substringBefore 415
13.7.9 fn:substringAfter 416
13.7.10 fn:split 416
13.7.11 fn:join 417
13.7.12 fn:toLowerCase 418
13.7.13 fn:toUpperCase 419
13.7.14 fn:trim 419
13.7.15fn:escapeXml 420
13.7.16 fn:length 420
13.8小结 421
第14章 标签文件(Tag Files) 422
14.1标签文件的语法 422
14.2个简单的标签文件 422
14.3标签文件的隐含对象 426
14.4标签文件的指令 427
14.4.1 tag指令 427
14.4.2 attribute指令 428
14.4.3 variable指令 429
14.5标签文件实例讲解 430
14.5.1实例一:〈welcome〉标签 430
14.5.2实例二:〈toHtml〉标签 431
14.6 〈jsp:invoke〉动作元素 433
14.7 〈jsp:doBody〉动作元素 434
14.8小结 434
第15章Servlet监听器 436
15.1监听器接口 436
15.2 ServletContextListener接口 437
153 HttpSessionBindingListener接口 439
15.4在线人数统计程序 440
15.5小结 447
第16章Filter在Web开发中的应用 448
16.1过滤器概述 448
16.2 Filter API 449
16.2.1Filter接口 450
16.2.2FilterConfig接口 450
16.2.3FilterChain接口 451
16.3过滤器的部署 451
16.4过滤器的开发 454
16.5对用户进行统一验证的过滤器 456
16.6对请求和响应数据进行替换的过滤器 462
16.7对响应内容进行压缩的过滤器 473
16.8小结 480
第17章 中文乱码问题与国际化 481
17.1中文乱码问题产生的由来 481
17.1.1常用字符集 481
17.1.2对乱码产生过程的分析 484
17.2中文乱码问题的解决方案 486
17.3使用过滤器解决中文问题 488
17.4让Tomcat支持中文文件名 493
17.5国际化与本地化 494
17.5.1 Locale 495
17.5.2资源包 496
17.5.3消息格式化 499
17.5.4编写国际化的Web应用程序 500
17.6小结 504
第18章 开发安全的Web应用程序 505
18.1概述 505
18.2理解验证机制 507
18.2.1HTrP Basic Authentication 507
18.2.2 HTIP Digest Authentication 508
18.2.3 HTIPSClient Authentication 508
18.2.4 Form Based Authentication 509
18.3声明式安全 509
18.3.1 〈secunty-constraint〉元素 509
18.3.2多个安全约束的联合 512
18.3.3 〈login-config〉元素 513
18.3.4基本验证的实现 514
18.3.5基于表单验证的实现 516
18.3.6使用数据库保存用户名和密码 519
18.4程序式安全 524
18.5 SQL注入攻击的防范 527
18.6小结 529
第19章 避免表单的重复提交 530
19.1在客户端避免表单的重复提交 530
19.2在服务器端避免表单的重复提交 533
19.3小结 540
第20章 使用Eclipse开发Web应用 541
20.1 Eclipse介绍 541
20.1.1下载并安装Eclipse 541
20.1.2 Eclipse开发环境介绍 542
20.1.3配置Eclipse 544
20.2文件的上传 549
20.2.1基于表单的文件上传 549
20.2.2文件上传格式分析 550
20.2.3 commons-fileupload组件 551
20.2.4文件上传实例 553
20.3文件的下载 565
20.4给图片添加水印和文字 573
20.5小结 577
附录A快速掌握HTML 579
附录B解析HTTP 608
附录C server.xml文件 623
附录D web.xml文件 631