《Tomcat与Java Web开发技术详解》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:孙卫琴编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121072970
  • 页数:736 页
图书介绍:本书畅销书升级,书中结合最新的Tomcat 6版本,详细介绍了开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用实例,并提供了详细的开发和部署步骤。由于Java Web技术是SUN公司在Java Servlet规范中提出的通用技术,因此本书讲解的Java Web应用例子可以运行在任何一个实现SUN的Servlet规范的Java Web服务器上。随书附赠光盘内容为本书所有范例源程序,以及本书涉及的部分软件的最新版本的安装程序。

第1篇 Java Web开发技术详解第1章 Web运作原理探析 3

1.1 Web的概念 3

1.2 HTML简介 4

1.3 URL简介 7

1.4 HTTP协议简介 7

1.4.1 HTTP请求格式 9

1.4.2 HTTP响应格式 11

1.4.3 正文部分的MIME类型 13

1.5 用Java套接字创建HTTP客户与服务器程序 14

1.5.1 演示异构系统之间用HTTP协议通信 17

1.5.2 演示对网页中的超级链接的处理过程 19

1.5.3 演示对网页中的图片的处理过程 20

1.6 Web发展历程 21

1.6.1 发布静态HTML文档 21

1.6.2 发布静态多媒体信息 22

1.6.3 提供浏览器端与用户的动态交互功能 22

1.6.4 提供服务器端与用户的动态交互功能 24

1.6.5 发布Web应用 29

1.6.6 发布Web服务 30

1.6.7 Web2.0:全民共建的Web 32

1.7 处理HTTP请求参数及HTML表单 33

1.8 客户端向服务器端上传文件 36

1.9 小结 41

1.10 思考题 42

第2章 Tomcat简介 45

2.1 Tomcat概述 46

2.2 Tomcat作为Servlet容器的基本功能 47

2.3 Tomcat的组成结构 48

2.4 Tomcat的工作模式 50

2.5 Tomcat的版本 52

2.6 安装和配置Tomcat所需的资源 53

2.7 安装Tomcat 55

2.8 启动Tomcat并测试Tomcat的安装 57

2.9 Tomcat的运行脚本 58

2.10 小结 59

2.11 思考题 60

第3章 第一个JavaWeb应用 63

3.1 JavaWeb应用简介 63

3.2 创建JavaWeb应用 64

3.2.1 JavaWeb应用的目录结构 64

3.2.2 创建HTML文件 65

3.2.3 创建Servlet类 66

3.2.4 创建JSP文件 67

3.2.5 创建web.xml文件 68

3.3 在Tomcat中发布JavaWeb应用 70

3.3.1 Tomcat的目录结构 70

3.3.2 按照默认方式发布JavaWeb应用 71

3.3.3 Web组件的URL 72

3.3.4 配置Tomcat的<Context>元素 75

3.3.5 配置Tomcat的虚拟主机 78

3.4 创建、配置和使用自定义JSP标签 80

3.5 用批处理文件或ANT编译范例 84

3.6 小结 85

3.7 思考题 86

第4章 Servlet技术(上) 89

4.1 Servlet API 90

4.1.1 Servlet接口 90

4.1.2 GenericServlet抽象类 91

4.1.3 HttpServlet抽象类 93

4.1.4 ServletRequest接口 96

4.1.5 HttpServletRequest接口 97

4.1.6 ServletResponse接口 100

4.1.7 HttpServletResponse接口 101

4.1.8 ServletConfig接口 104

4.1.9 ServletContext接口 105

4.2 JavaWeb应用的生命周期 108

4.2.1 启动阶段 108

4.2.2 运行时阶段 109

4.2.3 终止阶段 109

4.2.4 用Tomcat的管理平台管理Web应用的生命周期 109

4.3 Servlet的生命周期 111

4.3.1 初始化阶段 111

4.3.2 运行时阶段 112

4.3.3 销毁阶段 112

4.3.4 演示Servlet的生命周期的范例 113

4.4 ServletContext与Web应用范围 115

4.4.1 在Web应用范围内存放共享数据的范例 116

4.4.2 使用ServletContextListener监听器 119

4.5 Servlet的服务方法抛出异常 121

4.6 防止页面被客户端缓存 122

4.7 小结 123

4.8 思考题 124

第5章 Servlet技术(下) 129

5.1 下载文件 129

5.2 上传文件 130

5.3 动态生成图像 136

5.4 读写Cookie 139

5.5 访问Web应用的工作目录 145

5.6 转发和包含 147

5.6.1 请求转发 148

5.6.2 包含 152

5.6.3 请求范围 154

5.7 重定向 155

5.8 访问Servlet容器内的其他Web应用 158

5.9 避免并发问题 160

5.9.1 合理决定在Servlet中定义的变量的作用域类型 162

5.9.2 使用Java同步机制对多线程同步 164

5.9.3 被废弃的SingleThreadModel接口 165

5.10 小结 166

5.11 思考题 169

第6章 JSP技术 171

6.1 比较HTML、Servlet和JSP 171

6.1.1 静态HTML文件 171

6.1.2 用Servlet动态生成HTML页面 171

6.1.3 用JSP动态生成HTML页面 173

6.2 JSP语法 177

6.2.1 JSP指令(Directive) 178

6.2.2 JSP声明 180

6.2.3 Java程序片段(Scriptlet) 181

6.2.4 Java表达式 182

6.2.5 隐含对象 184

6.3 JSP的生命周期 185

6.4 请求转发 188

6.5 包含 190

6.5.1 静态包含 190

6.5.2 动态包含 192

6.5.3 混合使用静态包含和动态包含 194

6.6 JSP异常处理 200

6.7 再谈发布JSP 202

6.8 预编译JSP 203

6.9 PageContext抽象类 204

6.10 JSP技术的发展趋势 206

6.11 小结 207

6.12 思考题 207

第7章 bookstore应用简介 211

7.1 bookstore应用的软件结构 211

7.1.1 Web服务器层 211

7.1.2 数据库层 212

7.2 浏览bookstore应用的JSP网页 212

7.3 JavaBean和实用类 217

7.3.1 实体类 218

7.3.2 购物车的实现 219

7.4 发布bookstore应用 222

7.5 小结 223

第8章 访问数据库 225

8.1 安装和配置MySQL数据库 225

8.2 JDBC简介 228

8.2.1 java.sql包中的接口和类 230

8.2.2 编写访问数据库程序的步骤 234

8.2.3 事务处理 236

8.3 通过JDBC API访问数据库的JSP范例程序 237

8.4 bookstore应用通过JDBC API访问数据库 239

8.5 数据源(DataSource)简介 243

8.6 配置数据源 244

8.6.1 在context.xml中加入<Resource>元素 244

8.6.2 在web.xml中加入<resource-ref>元素 245

8.7 程序中访问数据源 246

8.7.1 通过数据源连接数据库的JSP范例程序 246

8.7.2 bookstore应用通过数据源连接数据库 248

8.8 处理中文编码 251

8.9 分页显示批量数据 252

8.10 小结 256

8.11 思考题 257

第9章 HTTP会话的使用与管理 259

9.1 会话简介 259

9.2 HttpSession的生命周期及会话范围 263

9.3 使用会话的JSP范例程序 265

9.4 使用会话的Servlet范例程序 269

9.5 通过重写URL来跟踪会话 273

9.6 会话的持久化 277

9.6.1 标准会话管理器StandardManager 279

9.6.2 持久化会话管理器PersistentManager 280

9.7 会话的监听 284

9.7.1 用HttpSessionListener统计在线用户人数 289

9.7.2 用HttpSessionBindingListener统计在线用户人数 291

9.8 小结 294

9.9 思考题 295

第10章 JSP访问JavaBean 299

10.1 JavaBean简介 299

10.2 JSP访问JavaBean的语法 300

10.3 JavaBean的范围 302

10.3.1 JavaBean在页面(page)范围内 302

10.3.2 JavaBean在请求(request)范围内 305

10.3.3 JavaBean在会话(session)范围内 306

10.3.4 JavaBean在Web应用(application)范围内 307

10.4 在bookstore应用中访问JavaBean 308

10.4.1 访问BookDB类 308

10.4.2 访问ShoppingCart类 309

10.5 小结 313

10.6 思考题 314

第11章 开发JavaMail Web应用 317

11.1 E-mail协议简介 317

11.1.1 SMTP简单邮件传输协议 317

11.1.2 POP3邮局协议 318

11.1.3 接收邮件的新协议IMAP 318

11.2 JavaMailAPI简介 319

11.3 建立JavaMail应用程序的开发环境 321

11.3.1 获得JavaMail API的类库 321

11.3.2 安装和配置邮件服务器 321

11.4 创建JavaMail应用程序 324

11.5 JavaMail Web应用简介 328

11.6 JavaMail Web应用的程序结构 328

11.6.1 重新封装Message数据 329

11.6.2 用于保存邮件账号信息的JavaBean 332

11.6.3 定义所有JSP文件的相同内容 334

11.6.4 登录IMAP服务器上的邮件账号 336

11.6.5 管理邮件夹 339

11.6.6 查看邮件夹中的邮件信息 342

11.6.7 查看邮件内容 345

11.6.8 创建和发送邮件 346

11.6.9 退出邮件系统 348

11.7 在Tomcat中配置邮件会话(Mail Session) 349

11.7.1 在context.xml中配置Mail Session资源 349

11.7.2 在web.xml中加入对JNDI Mail Session资源的引用 350

11.7.3 在javamail应用中获取JNDI Mail Session资源 350

11.8 发布和运行javamail应用 352

11.9 小结 352

11.10 思考题 353

第12章 EL表达式语言 355

12.1 基本语法 355

12.1.1 访问对象的属性及数组的元素 356

12.1.2 EL运算符 356

12.1.3 隐含对象 357

12.1.4 命名变量 359

12.2 使用EL表达式的JSP范例 360

12.2.1 关于基本语法的例子 360

12.2.2 读取HTML表单数据的例子 362

12.2.3 访问命名变量的例子 363

12.3 定义和使用EL函数 363

12.4 小结 366

12.5 思考题 367

第13章 自定义JSP标签 369

13.1 自定义JSP标签简介 369

13.2 JSP Tag API 370

13.2.1 JspTag接口 370

13.2.2 Tag接口 371

13.2.3 IterationTag接口 373

13.2.4 BodyTag接口 374

13.2.5 TagSupport类和BodyTagSupport类 376

13.3 创建和使用message标签(访问标签属性) 380

13.3.1 创建message标签的处理类MessageTag 382

13.3.2 创建标签库描述文件 385

13.3.3 在Web应用中使用标签 388

13.3.4 发布支持中、英文版本的helloapp应用 390

13.4 创建和使用iterate标签(重复执行标签主体) 391

13.5 创建和使用greet标签(访问标签主体内容) 395

13.6 小结 399

13.7 思考题 400

第14章 采用模板设计网上书店应用 403

14.1 如何设计网站的模板 403

14.2 创建负责流程控制的Servlet 404

14.3 创建模板标签和模板JSP文件 406

14.3.1 <parameter>标签和其处理类 408

14.3.2 <screen>标签和处理类 411

14.3.3 <definition>标签和处理类 413

14.3.4 <insert>标签和处理类 417

14.4 修改JSP文件 419

14.5 发布采用模板设计的bookstore应用 420

14.6 小结 423

第15章 JSTL Core标签库 425

15.1 使用第三方提供的标签库的步骤 425

15.2 JSTL标签库简介 426

15.3 一般用途的标签 427

15.3.1 <c:out>标签 427

15.3.2 <c:set>标签 428

15.3.3 <c:remove>标签 430

15.3.4 <c:catch>标签 430

15.4 条件标签 431

15.4.1 <c:if>标签 431

15.4.2 <c:choose>、<c:when>和<c:otherwise>标签 432

15.5 迭代标签 433

15.5.1 <c:forEach>标签 433

15.5.2 <c:forTokens>标签 437

15.6 URL相关的标签 437

15.6.1 <c:import>标签 437

15.6.2 <c:url>标签 438

15.6.3 <c:redirect>标签 440

15.7 小结 440

15.8 思考题 441

第16章 JSTL I18N标签库 443

16.1 国际化的概念 443

16.2 Java对I18N的支持 444

16.2.1 Locale类 444

16.2.2 ResourceBundle类 448

16.2.3 MessageFormat类和复合消息 449

16.3 国际化标签 452

16.3.1 <fmt:setLocale>标签 452

16.3.2 <fmt:setBundle>标签 453

16.3.3 <fmt:bundle>标签 453

16.3.4 <frnt:message>标签 454

16.3.5 <fmt:param>标签 455

16.3.6 <fmt:requestEneoding>标签 455

16.4 创建国际化的Web应用 456

16.4.1 创建支持国际化的网页 456

16.4.2 创建资源文件 459

16.5 格式化标签 460

16.5.1 <fmt:setTimeZone>标签 460

16.5.2 <fmt:timeZone>标签 461

16.5.3 <fmt:formatNumber>标签 461

16.5.4 <fmt:parseNumber>标签 462

16.5.5 <fmt:formatDate>标签 463

16.5.6 <fmt:parseDate>标签 465

16.6 小结 465

16.7 思考题 466

第17章 JSTL SQL标签库 469

17.1 <sql:setDataSource>标签 469

17.2 <sql:query>标签 470

17.2.1 设置数据源 470

17.2.2 设置select查询语句 470

17.2.3 控制实际取出的记录 471

17.2.4 访问查询结果 471

17.2.5 使用<sql:query>标签的范例 472

17.3 <sql:param>标签 474

17.4 <sql:dateParam>标签 475

17.5 <sql:update>标签 475

17.6 <sql:transaction>标签 476

17.7 小结 478

17.8 思考题 478

第18章 JSTL Functions标签库 481

18.1 fn:contains函数 481

18.2 fn:containsIgnoreCase函数 481

18.3 fn:startsWith函数 482

18.4 fn:endsWith函数 482

18.5 fn:indexOf函数 482

18.6 fn:replace函数 483

18.7 fn:substring函数 483

18.8 fn:substringBefore函数 483

18.9 fn:substringAfter函数 484

18.10 fn:split函数 484

18.11 fn:join函数 485

18.12 fn:toLowerCase函数 485

18.13 fn:toUpperCase函数 485

18.14 fn:trim函数 486

18.15 fn:escapeXml函数 486

18.16 fn:length函数 487

18.17 小结 488

18.18 思考题 489

第19章 简单标签和标签文件 491

19.1 实现SimpleTag接口 491

19.1.1 创建和使用<hello> 简单标签 493

19.1.2 创建和使用带属性和标签主体的<welcome>简单标签 494

19.1.3 创建和使用带动态属性的<max>简单标签 495

19.2 使用标签文件 497

19.2.1 标签文件的隐含对象 500

19.2.2 标签文件的指令 501

19.2.3 标签文件的<jsp:invoke>和<jsp:doBody>动作元素 503

19.2.4 创建和使用带属性和标签主体的display标签文件 503

19.2.5 创建和使用带属性和标签主体的welcome标签文件 505

19.2.6 创建和使用带变量的precode标签文件 506

19.3 小结 507

19.4 思考题 507

第20章 过滤器 509

20.1 过滤器简介 509

20.2 创建过滤器 510

20.3 发布过滤器 513

20.4 串联过滤器 518

20.4.1 包装设计模式简介 519

20.4.2 ServletOutputStream的包装类 521

20.4.3 HttpServletResponse的包装类 524

20.4.4 创建对响应结果进行字符串替换的过滤器 525

20.4.5 ReplaceTextFilter过滤器工作的UML时序图 527

20.4.6 发布和运行包含ReplaceTextFilter过滤器的Web应用 528

20.5 小结 531

20.6 思考题 532

第21章 在Web应用中访问EJB组件 535

21.1 JavaEE体系结构简介 535

21.2 安装和配置JBoss服务器 537

21.3 创建EJB组件 538

21.3.1 编写Remote接口 539

21.3.2 编写Home接口 539

21.3.3 编写Enterprise Java Bean类 540

21.4 在Web应用中访问EJB组件 543

21.5 发布JavaEE应用 544

21.5.1 在JBoss上发布EJB组件 545

21.5.2 在JBoss上发布Web应用 547

21.5.3 在JBoss上发布JavaEE应用 549

21.6 小结 550

21.7 思考题 551

第22章 在Web应用中访问Web服务 553

22.1 SOAP简介 553

22.2 建立Apache AXIS环境 555

22.3 在Tomcat上发布Apache-AXIS Web应用 556

22.4 创建SOAP服务 557

22.4.1 创建提供SOAP服务的Java类 557

22.4.2 创建SOAP服务的发布描述符文件 557

22.5 管理SOAP服务 558

22.5.1 发布SOAP服务 558

22.5.2 删除SOAP服务 559

22.6 创建和运行SOAP客户程序 560

22.7 发布JWS服务 563

22.8 在bookstore应用中访问SOAP服务 563

22.8.1 创建BookDB服务类及BookDBDelegate代理类 564

22.8.2 发布bookdbservice服务和bookstore应用 573

22.9 小结 574

22.10 思考题 575

第23章 Web应用的MVC设计模式 577

23.1 MVC设计模式简介 577

23.2 JSPModel 1和JSP Model 2 579

23.3 Struts概述 581

23.3.1 Struts实现MVC的机制 581

23.3.2 Struts的工作流程 582

23.4 创建采用Struts的Web应用 583

23.4.1 建立Struts的环境 583

23.4.2 创建视图 584

23.4.3 创建模型 585

23.4.4 创建Action类 585

23.4.5 创建web.xml文件和struts.xml文件 586

23.5 运行helloapp应用 587

23.5.1 服务器端装载login.htm的流程 587

23.5.2 用户验证的流程 587

23.6 小结 589

23.7 思考题 589

第2篇 Tomcat配置及第三方实用软件的用法第24章 Tomcat的控制平台和管理平台 593

24.1 访问Tomcat的控制平台和管理平台 593

24.2 Tomcat的控制平台 595

24.2.1 Tomcat控制平台的功能 595

24.2.2 配置<Valve>元素 597

24.3 Tomcat的管理平台 598

24.4 小结 600

第25章 安全域 601

25.1 安全域概述 601

25.2 为Web资源设置安全约束 602

25.2.1 在web.xml中加入<security-constraint>元素 603

25.2.2 在web.xml中加入<login-config>元素 605

25.2.3 在web.xml中加入<security-role>元素 608

25.3 内存域 608

25.4 JDBC域 610

25.4.1 用户数据库的结构 610

25.4.2 在MySQL中创建和配置用户数据库 611

25.4.3 配置<Realm>元素 611

25.5 DataSource域 612

25.6 在Web应用中访问用户信息 614

25.7 小结 614

25.8 思考题 615

第26章 Tomcat与其他HTTP服务器集成 617

26.1 Tomcat与HTTP服务器集成的原理 617

26.1.1 JK插件 618

26.1.2 AJP协议 618

26.2 在Windows下Tomcat与Apache服务器集成 618

26.3 在Linux下Tomcat与Apache服务器集成 621

26.4 Tomcat与IIS服务器集成 623

26.4.1 准备相关文件 624

26.4.2 编辑注册表 624

26.4.3 在IIS中加入“iakarta”虚拟目录 626

26.4.4 把JK插件作为ISAPI筛选器加入到IIS中 627

26.4.5 测试配置 628

26.5 Tomcat集群 628

26.5.1 配置集群系统的负载平衡器 629

26.5.2 配置集群管理器 631

26.6 小结 635

26.7 思考题 636

第27章 在Tomcat中配置SSI 637

27.1 SSI简介 637

27.1.1 #echo指令 638

27.1.2 #include指令 640

27.1.3 #flastmod指令 641

27.1.4 #fsize指令 641

27.1.5 #exec指令 641

27.1.6 #config指令 641

27.1.7 #if、#elif、#else和#endif指令 643

27.2 在Tomcat中配置对SSI的支持 643

27.3 小结 645

27.4 思考题 645

第28章 Tomcat阀 647

28.1 Tomcat阀简介 647

28.2 客户访问日志阀 648

28.3 远程地址过滤器 650

28.4 远程主机过滤器 651

28.5 客户请求记录器 652

28.6 小结 653

28.7 思考题 653

第29章 在Tomcat中配置SSL 655

29.1 SSL简介 655

29.1.1 加密通信 656

29.1.2 安全证书 656

29.1.3 SSL握手 657

29.2 在Tomcat中使用SSL 658

29.2.1 准备安全证书 658

29.2.2 配置SSL连接器 659

29.2.3 访问支持SSL的Web站点 660

29.3 小结 661

29.4 思考题 662

第30章 用ANT工具管理Web应用 663

30.1 安装配置ANT 663

30.2 创建build.xml文件 663

30.3 运行ANT 668

30.4 小结 669

30.5 思考题 669

第31章 使用Log4J进行日志操作 671

31.1 Log4J简介 671

31.1.1 Logger组件 672

31.1.2 Appender组件 673

31.1.3 Layout组件 673

31.1.4 Logger组件的继承性 674

31.2 Log4J的基本使用方法 675

31.2.1 定义配置文件 675

31.2.2 在程序中使用Log4J 677

31.3 在helloapp应用中使用Log4J 680

31.3.1 创建用于配置Log4J环境的Servlet 680

31.3.2 在loginjsp中输出日志 681

31.3.3 发布和运行使用Log4J的helloapp应用 681

31.4 小结 683

31.5 思考题 683

第32章 Velocity模板语言 685

32.1 安装Velocity 685

32.2 Velocity的简单例子 685

32.2.1 创建Velocity模板 685

32.2.2 创建扩展VelocityServlet的Servlet类 686

32.2.3 发布和运行基于Velocity的Web应用 688

32.3 注释 689

32.4 引用 689

32.4.1 变量引用 689

32.4.2 属性引用 690

32.4.3 方法引用 692

32.4.4 正式引用符 693

32.4.5 安静引用符 693

32.4.6 转义符 694

32.4.7 大小写替换 694

32.5 指令 695

32.5.1 #set指令 695

32.5.2 字面字符串 696

32.5.3 #if指令 697

32.5.4 比较运算 697

32.5.5 #foreach循环指令 698

32.5.6 #include指令 700

32.5.7 #parse指令 700

32.5.8 #macro指令 701

32.5.9 转义VTL指令 702

32.5.10 VTL的格式 702

32.6 其他特征 703

32.6.1 数学运算 703

32.6.2 范围操作符 703

32.6.3 字符串的连接 704

32.7 小结 705

32.8 思考题 705

第33章 创建嵌入式Tomcat服务器 707

33.1 将Tomcat嵌入到Java应用中 707

33.2 创建嵌入了Tomcat的Java示范程序 708

33.3 运行嵌入式Tomcat服务器 711

33.4 小结 713

附录A server.xml文件 715

A.1 配置Server元素 716

A.2 配置Service元素 717

A.3 配置Engine元素 717

A.4 配置Host元素 718

A.5 配置Context元素 718

A.6 配置Connector元素 719

附录B web.xml文件 721

B.1 配置过滤器 723

B.2 配置Servlet 724

B.3 配置Servlet映射 725

B.4 配置Session 725

B.5 配置Welcome文件清单 725

B.6 配置Tag Library 726

B.7 配置资源引用 726

B.8 配置安全约束 727

B.9 配置安全验证登录界面 727

B.10 配置对安全验证角色的引用 728

附录C XML简介 729

C.1 SGML、HTML与XML的比较 729

C.2 DTD文档类型定义 730

C.3 有效XML文档以及简化格式的XML文档 731

C.4 XML中的常用术语 732

C.4.1 URL、URN和URI 733

C.4.2 XML命名空间 733

附录D 书中涉及软件获取途径 735