《Apache Tomcat 6高级编程》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)乔帕(Chopra,V.),(美)李(Li.S.),(美)吉恩德(Genender,J.)著;杨金奎等译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115193520
  • 页数:560 页
图书介绍:本书详细介绍了在最新Tomcat 6版本上开发应用的各种技术。主要内容包括:Tomcat和开发的基础知识,开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用实例,并提供了详细的开发和部署步骤。

第1章 ApacheTomcat 1

1.1谦逊的开始:Apache项目 2

1.2 Apache软件基金会 2

1.3 Tomcat 3

1.3.1分发Tomcat: Apache的许可证 3

1.3.2与其他许可证的比较 4

1.4蓝图:Java EE 5

1.4.1 Java API 6

1.4.2 Java EE API 6

1.4.3 Java EE应用服务 7

1.4.4向标准化看齐,在实践中竞争 7

1.4.5 Tomcat和应用服务器 8

1.5 Tomcat和Web服务器 8

1.6本章小结 9

第2章 Web的应用:ServletJSP及其他 10

2.1 Web应用简史 10

2.1.1 CGI脚本:第一个动态文本机制 10

2.1.2 Java服务器端:Servlet 11

2.1.3 JavaServer Page 16

2.1.4 JSP标签库 18

2.1.5 JSP EL 20

2.1.6 MVC架构 20

2.1.7使用合适的Web技术 22

2.2 Web应用的创建和分类 22

2.3本章小结 23

第3章 Tomcat安装 24

3.1安装Java虚拟机 24

3.1.1在Windows上安装JVM 25

3.1.2在Linux上安装JVM 26

3.2安装Tomcat 28

3.2.1选择安装类别 28

3.2.2检验下载文件 29

3.2.3 Windows上安装Tomcat 29

3.2.4在Windows下使用ZIP文件安装Tomcat 34

3.2.5在Linux下安装Tomcat 34

3.3使用源代码构建Tomcat 36

3.3.1是需要通过源代码构建Tomcat 37

3.3.2下载源代码版本 37

3.3.3 subversion储存库 37

3.3.4构建一个源代码版本 37

3.4 Tomcat安装目录 38

3.5安装APR 39

3.6疑难解答和详细说明 40

3.6.1类版本错误 41

3.6.2使用中的端口号 41

3.6.3运行多重实例 41

3.6.4代理阻塞通道 41

3.7本章小结 42

第4章 Tomcat架构 43

4.1 Tomcat目录概述 43

4.1.1 bin目录 43

4.1.2 conf目录 44

4.1.3 lib目录 45

4.1.4 logs目录 45

4.1.5 temp目录 45

4.1.6 webapps目录 45

4.1.7 work目录 46

4.2 Tomcat架构概述 46

4.2.1服务器 47

4.2.2服务 47

4.2.3 Tomcat架构中的其余类 50

4.3连接器架构 51

4.3.1通信路径 51

4.3.2连接器协议 52

4.3.3选择连接器 54

4.4生命周期 55

4.4.1 LifeCycle接口 55

4.4.2 LifecycleListener接口 56

4.5根据架构进行配置 57

4.6本章小结 58

第5章 Tomeat的基本配置 59

5.1 Tomcat 6配置的要点 59

5.2 $CATALINA HOME/conf中的文件 60

5.3服务器的基本配置 61

5.3.1通过server.xml默认文件配置服务器 61

5.3.2应用服务器配置下的Tomcat运行 64

5.3.3 Web应用软件的Context定义 70

5.3.4默认context.xml文件 70

5.3.5认证和tomcat-users.xml文件 72

5.3.6默认的部署描述符——Web.xml 73

5.3.7 servlet.xml.Context描述符和web.xml怎样协同工作 78

5.3.8严密的访问控制:catlina.policy 81

5.3.9 Catalina.properties:建立在访问查询上的严密的访问控制 84

5.3.10引导配置 84

5.3.11配置和管理的不同点 85

5.4 Tomcat 6基于Web的GUI配置器 85

5.5本章小结 87

第6章 高级Tomcat特性 88

6.1阀——截取Tomcat样式 88

6.2标准阀 89

6.3访问日志实现 90

6.4日志文件范围 90

6.5单点登录实现 93

6.5.1不使用单点登录阀实现多次登录 93

6.5.2配置单点登录阀 96

6.6 Form认证器阀 96

6.7通过请求过滤器限制访问 96

6.7.1远程地址过滤器 97

6.7.2远程主机过滤器 97

6.7.3配置请求过滤器阀 97

6.7.4请求记录器阀 98

6.8持久会话 99

6.8.1持久会话的必要性 99

6.8.2配置Persistent Session Manager 99

6.9 JNDI资源配置 101

6.9.1什么是JNDI 101

6.9.2 Tomcat和J NDI 103

6.9.3典型的Tomcat JNDI资源 103

6.9.4通过JNDI配置资源 104

6.9.5配置JDBC DataSource 106

6.9.6配置Mail会话 108

6.10配置Lifecycle listener 111

6.10.1 Tomcat组件发送的生命周期事件 111

6.10.2 <Listener>元素 112

6.10.3 Tomcat 6 Lifecycle listener配置 113

6.11本章小结 115

第7章 Web应用程序配置 117

7.1理解Web应用程序内容 117

7.1.1公共资源 118

7.1.2 Web-INF目录 119

7.1.3 META-INF目录 120

7.2理解部署描述符 121

7.2.1 Servlet 2.3类型部署描述符 122

7.2.2 Servlet 2.4/2.5类型部署描述符 135

7.3本章小结 151

第8章 Web应用程序管理 152

8.1 Web应用程序示例 152

8.2 Tomcat管理员程序 154

8.2.1允许访问管理员程序 155

8.2.2配置管理员程序 156

8.3 Tomcat管理器:网络接口 158

8.3.1显示Tomcat服务器状态 159

8.3.2管理Web应用程序 159

8.3.3部署Web应用程序 161

8.4 Tomcat管理器:用Ant管理应用程序 162

8.5 Tomcat管理器:使用HTTP请求 167

8.5.1列出已部署的应用程序 168

8.5.2部署新的应用程序 169

8.5.3在Tomcat 6中安装/部署应用程序 170

8.5.4远程部署新的应用程序 170

8.5.5从本地路径部署新的应用程序 171

8.5.6重载现有的应用程序 173

8.5.7列出可用的JNDI资源 174

8.5.8列出OS和JVM属性 174

8.5.9停止现有的应用程序 175

8.5.10启动被停止的应用程序 175

8.5.11反部署Web应用程序 176

8.5.12显示会话统计 176

8.5.13使用JMX代理Servlet查询Tomcat内核 177

8.5.14使用JMX代理Servlet设置Tomcat内核 178

8.6可能发生的错误 178

8.7安全性考虑 179

8.8 Tomcat部署器 181

8.9本章小结 181

第9章 类装载器 182

9.1类装载器概述 182

9.1.1标准的Java SE类装载器 183

9.1.2关于类装载器的更多行为 186

9.1.3创建自定义类装载器 187

9.1.4为什么Tomcat需要自定义的类装载器 188

9.2安全性和类装载器 188

9.2.1类装载器委派 188

9.2.2核心类限制 189

9.2.3独立的类装载器命名空间 189

9.2.4 SecurityManager 189

9.3 Tomcat与类装载器 190

9.3.1系统类装载器 191

9.3.2 Endorsed Standards Override机制 191

9.3.3通用类装载器 191

9.3.4 Web应用程序类装载器 192

9.4动态类重载 193

9.5通用类装载器缺陷 194

9.5.1在不同的类装载器中分割包 194

9.5.2 Singleton 194

9.5.3 XML分析器 195

9.6本章小结 196

第10章 HTTP连接器 197

10.1 HTTP连接器 198

10.1.1 Tomcat 6 HTTP /1.1连接器 198

10.1.2高级NIO连接器 202

10.1.3 Comet异步IO支持 203

10.1.4本地APR连接器 203

10.2配置Tomcat支持CGI 207

10.3配置Tomcat以支持SSI 209

10.3.1配置Tomcat 6 SSI Servlet 209

10.3.2配置Tomcat 6 SSI过滤器 212

10.4在代理服务器后运行Tomcat 214

10.5性能调整 214

10.5.1可调整的配置属性 215

10.5.2 TCP/IP栈调整技巧 216

10.6前端Tomcat 6和Web服务器 216

10.7本章小结 217

第11章 Tomcat与Apache HTTP服务器 218

11.1 AJP连接器体系结构 218

11.1.1 Apache的本地代码模块 219

11.1.2 Apache JServ协议 220

11.1.3 AJP连接器 220

11.2 Apache Web服务器前端或独立的Tomcat 220

11.3了解Tomcat Worker 221

11.3.1多个Tomcat Worker 221

11.3.2使用workers.properties文件配置Apache服务器与多个Tomcat Worker协同工作 221

11.4连接Tomcat与Apache 225

11.4.1 Tomcat 6配置 226

11.4.2 Apache Web服务器配置 226

11.4.3使用mod_jk模块 227

11.4.4使用mod_proxy模块 233

11.5为Apache Web服务器配置SSL 237

11.5.1为Apache配置mod_ssl 238

11.5.2测试启用SSL的Apache设置 242

11.5.3启用SSL的Apache-Tomcat设置 245

11.6 Tomcat负载平衡与Apache 246

11.6.1更改Tomcat启动文件中的CATALINA_HOME 247

11.6.2设置不同的AJP连接器端口 248

11.6.3设置不同的服务器端口 248

11.6.4禁用默认的HTTP/1.1连接器 248

11.6.5在Standalone Engine中设置jvmRoute 249

11.6.6注释Catalina Engine 249

11.6.7 httpd.conf中的指令 249

11.6.8 workers.properties中的worker配置 250

11.7测试负载平衡器 252

11.7.1测试Sticky会话 254

11.7.2测试Round-Robin行为 254

11.7.3在不同的负载系数下测试 256

11.8本章小结 257

第12章 Tomcat与IIS 258

12.1 ISAPI插件的角色 258

12.2连接Tomcat和IIS 259

12.2.1检查Tomcat与IIS的安装 260

12.2.2配置JK连接器 260

12.2.3安装ISAPI插件 261

12.2.4配置Tomcat worker 261

12.2.5配置转发请求规则 263

12.2.6可选的URL重写规则配置 264

12.2.7为ISAPI插件升级Windows注册表 264

12.2.8 IIS 5独立模式(只针对IIS 6) 267

12.2.9在IIS下创建虚拟目录 268

12.2.10添加作为IIS过滤器的ISAPI插件 271

12.2.11授权作为Web应用程序扩展的ISAPI插件(只针对IIS 6) 272

12.2.12测试最后的设置 273

12.3故障解决技巧 274

12.4使用SSL 275

12.5 IIS和Tomcat的可扩展架构 275

12.5.1分发Web和应用程序部署 276

12.5.2多个Tomcat Workers 277

12.5.3负载平衡的AJP Worker 277

12.6本章小结 277

第13章 JDBC连接 279

13.1 JDBC基础 279

13.1.1建立和终止RDBMS连接 281

13.1.2 JDBC版本演化 281

13.1.3 JDBC驱动类型 282

13.1.4数据库连接池 282

13.1.5连接池的问题 284

13.1.6 Tomcat和JDBC演化 284

13.2 Tomcat 6中的JNDI模拟和连接池 285

13.3首选的配置:JNDI资源 286

13.3.1 Resource标签 286

13.3.2继承JNDI资源配置 288

13.3.3测试JNDI资源配置 293

13.4可选的JDBC配置 295

13.5可选的连接池管理器 295

13.5.1关于c3p0池管理器 295

13.5.2部署c3p0池管理器 296

13.5.3无需JNDI查找获得JDBC连接 296

13.5.4使用c3p0测试对非JNDI池的访问 298

13.5.5使用JNDI映射获得连接 298

13.5.6使用Tomcat 6 JNDI-comp-atible查找测试c3p0 300

13.5.7部署第三方连接池 300

13.6本章小结 301

第14章 Tomcat安全 302

14.1核查下载的Tomcat的完整性 302

14.1.1核查MD5摘要 303

14.1.2使用PGP签名来核查下载的文件 303

14.2确保Tomcat服务器安全安装 307

14.2.1去除默认的应用程序 307

14.2.2 ROOT和tomcat-docs 308

14.2.3系统应用程序——manager和host-manage 308

14.2.4约束系统应用程序访问安全性 308

14.2.5删除JSP和Servlet的例子 308

14.2.6更改SHUTDOWN命令 309

14.3使用特殊账户运行Tomcat 309

14.3.1创建一个无特权的Tomcat用户 309

14.3.2使用Tomcat用户运行Tomcat 310

14.4确保文件系统安全 311

14.4.1 Windows文件系统 311

14.4.2 Linux文件系统 313

14.5确保Java虚拟机的安全 313

14.5.1 Security Manager概述 313

14.5.2使用Tomcat的Security Manager 317

14.5.3推荐的Securiry Manager练习 319

14.6确保Web应用程序的安全 321

14.6.1“认证”和“域” 322

14.6.2域安全性 326

14.7 SSL加密 341

14.7.1 JSSE 342

14.7.2使用SSL保护资源 344

14.8保证DefaultServlet的安全 346

14.8.1禁用目录列表 347

14.8.2禁用Invoker Servlet、SSI和CGI Gateway 347

14.9主机限制 347

14.10本章小结 348

第15章 共享的Tomcat主机 349

15.1虚拟主机概念 349

15.2 Apache中的虚拟主机 350

15.2.1实例部署方案 350

15.2.2Apache中基于IP的虚拟主机 351

15.2.3 Apache中基于名称的虚拟主机 353

15.3 Tomcat中的虚拟主机 357

15.3.1实例部署方案 357

15.3.2作为独立服务器的Tomcat 359

15.3.3使用Apache的Tomcat 366

15.3.4配置Apache 367

15.4 Tomcat Host-Manager应用程序 369

15.5虚拟主机问题:稳定性、安全和性能 370

15.6调整Tomcat中的虚拟主机设置 370

15.6.1为每个虚拟主机创建独立的JVM 371

15.6.2在Tomcat JVM上设置内存资源限制 375

15.6.3使用Java Security Manager限制 377

15.7本章小结 377

第16章 使用JMX监视和管理Tomcat 379

16.1管理需求 380

16.2关于JMX 381

16.2.1 JMX体系结构 382

16.2.2工具层 383

16.2.3代理层 384

16.2.4分布式服务层 387

16.3 JMX远程API 387

16.4 MBean介绍 387

16.4.1标准MBean 387

16.4.2动态MBean 388

16.4.3模型MBean 388

16.4.4开放MBean 388

16.5 JMX在Tomcat 6中的可管理元素 388

16.5.1可管理的Tomcat 6体系结构组件 389

16.5.2可管理的嵌入式组件 392

16.5.3可管理的运行时数据对象 393

16.5.4可管理的资源对象 394

16.6通过Manager Proxy访问Tomcat 6的JMX Support 399

16.6.1使用JMX Proxy 400

16.6.2修改MBean属性 402

16.6.3使用jconsole GUI监视Tomcat 404

16.6.4为远程监视配置Tomcat 407

16.7本章小结 410

第17章 集群 411

17.1集群益处 411

17.1.1可扩展性与集群 412

17.1.2高可靠性的必要性 412

17.2集群基础 413

17.2.1主-备用拓扑模式 413

17.2.2故障转移行为模式 414

17.3 Tomcat 6集群模型 415

17.3.1负载平衡 415

17.3.2会话共享 417

17.4使用Tomcat 6集群 420

17.4.1 Tomcat 6中的会话管理 420

17.4.2 Cookie和现代浏览器的角色 421

17.4.3配置一个Tomcat 6集群 421

17.4.4通用前端:通过Apache mod_jk使负载平衡 426

17.4.5准备使用不同的后端会-话共享 427

17.4.6后端1: 内存复制配置 427

17.4.7后端2:使用共享文件存储的永久会话管理器 438

17.4.8后端3:使用JDBC存储的永久会话管理器 440

17.4.9测试使用JDBC永久会话管理器后端的Tomcat集群 442

17.5集群的复杂性 442

17.5.1集群和性能 443

17.5.2集群和响应时间 443

17.5.3使用集群解决性能问题 443

17.6本章小结 444

第18章 嵌入式Tomcat 445

18.1现代系统设计中嵌入式Tomcat的重要性 445

18.1.1典型地嵌入式应用程序 446

18.1.2使用嵌入式Tomcat开发 447

18.2本章小结 456

第19章 日志 457

19.1从Tomcat 5的变革 457

19.2 log4j 458

19.2.1 log4j体系结构 458

19.2.2 log4j安装和配置 461

19.2.3 log4j入门指南 465

19.2.4 log4j高级用法 467

19.2.5 log4j性能建议 478

19.3 JULI 478

19.3.1 Java日志体系结构 478

19.3.2 JULI入门指南 480

19.4日志文件分析 482

19.5本章小结 483

第20章 性能测试 484

20.1性能概念 484

20.1.1评估什么 484

20.1.2可扩展性和性能 485

20.1.3理解用户角度的性能 485

20.1.4评估性能 486

20.2 JMeter 487

20.2.1安装和运行JMeter 488

20.2.2设计和理解使用JMeter的测试计划 488

20.2.3 JMeter特性 492

20.2.4分布式负荷测试 503

20.2.5解释测试结果 504

20.3替代JMeter的工具 506

20.4性能测试后的事项 507

20.5本章小结 508

第21章 性能调优 509

21.1性能调优的最佳实践 509

21.1.1步骤1:建立测试台 510

21.1.2步骤2:性能测试和确定基线 510

21.1.3步骤3:诊断性能瓶颈 511

21.2诊断Tomcat的性能问题 512

21.3 Tomcat性能调优提示 513

21.3.1 JVM的参数调优 514

21.3.2预编译JSP 516

21.3.3 Tomcat配置调优 518

21.3.4适当的时候使用Web服务器的静态内容 527

21.4本章小结 528

附录A Tomcat和集成开发环境 529

A.1 Eclipse 529

A.1.1调试Eclipse中的远程Web应用程序 530

A.1.2使用Sysdeo Tomcat插件部署和调试本地Web应用程序 532

A.1.3使用Web工具平台部署和调试Web应用程序 534

A.1.4使用Apache Ant和Eclipse管理Web应用程序部署 535

A.2 NetBeans 537

A.2.1调试NetBeans中的远程Web应用程序 537

A.2.2调试NetBeans内的Web应用程序 539

A.3小结 539

附录B Apache Ant 540

B.1安装Ant 540

B.2 Ant介绍 541

B.3 Ant诀窍 544

B.3.1使用Ant创建Web应用程序 544

B.3.2编译JSP 549

B.3.3利用属性文件和命令行参数的可重用Ant脚本 551

B.3.4创建日志 552

B.3.5通过电子邮件创建通知 553

B.3.6 Ant和源控制系统 555

B.3.7自动测试 555

B.4持续集成 556

B.5 Ant任务参考 557

B.6小结 560