ApacheTomcat6高级编程

版权信息书 名: ApacheTomcat6高级编程
作者:(美国)(Vivekchopra)乔帕 (美国)(jeffgenender)吉恩德
出版社:人民邮电出版社
出版时间: 2009
ISBN: 9787115193520
开本: 16
定价: 79.00 元
内容简介《ApacheTomcat6高级编程》全面介绍了安装、配置和运行ApacheTomcat服务器的知识。书中不仅提供了配置选项的逐行分析,还探究了Tomcat的特性和功能,可以帮助读者解决出现在系统管理的各个阶段的各种问题,包括共享主机、安全、系统测试和性能测试及调优。
《ApacheTomcat6高级编程》重点讲解Tomcat6的应用知识。从基本的Tomcat和Web应用程序配置,到用于集群、JDBC连接、日志和其他功能的更高级技术,这些内容将帮助读者高效地管理和执行Tomcat部署。
《ApacheTomcat6高级编程》适合于负责Tomcat配置、性能调优、系统安全或部署架构的J2EE系统管理员和Java开发者阅读。
作者简介VivekChopra拥有13年以上的软件架构师、开发者和团队领导的经验,他在硅谷的许多公司工作过。他写的技术书籍很生动,他是这本关于Java、开源软件、XML和Web服务图书的主要作者。他已经申请了关于Web服务技术的专利。过去3年他是JavaCommunityProcess(JCP)的会员,也是JSR280(JavaME的XMLAPI)专家组的成员。
SingLi(在20世纪70年代末就已经发现微机的bug)是伴随着微处理器的发展长大的。他的第一台个人电脑价值99美元,自制的NetronicsCOSMICELF,具有256字节的内存,是向PopularElectronics杂志邮购的。他具有20年行业经验,是系统开发者、开源软件贡献者和Java技术、嵌入式及分布式系统架构方面的业余作家。他时常为一些流行的技术期刊和电子杂志写文章,同时是最早的Intemet电话服务之一——ImemetGlobalPhone的创始人。他曾经编著和与人合著了许多技术书籍,包括Geronimo、Tomcat、JSP、servlet、XML、Jini、媒体流、设备驱动和JXTA。
JeffGenender拥有18年以上的软件架构师、团队领导,具有多家公司的开发经验,他是ApacheGeronimo的ProjectManagementCommittee(PMC)成员,也是关于OpenTerracotta、OpenEJB、ServiceMix和Mojo(Maven插件)的委员。作为Apache软件基金会的代表,他也是JSR.313(Java平台,企业版6[JavaEE61规范)的JavaCommunityProcess(JCP)专家组的成员。他通过努力成功地发展了开源软件,并被许多全球2000强公司分享,他的这些成功经验为这些机构节省了数百万的许可证费用。
编辑推荐通过阅读《ApacheTomcat6高级编程》。读者将掌握安装、配置和运行ApacheTomcat服务器的全部知识。《ApacheTomcat6高级编程》不仅提供了配置选项的逐行分析,还探究了Tonmcat的特性和功能。因此读者将能获得解决各种问题的技巧,这些问题出现在系统管理的各个阶段,包括共享主机、安全、系统测试和性能测试及调优。
《ApacheTomcat6高级编程》重点讲解Tomcat6的应用知识,介绍了新的架构和性能更改。从基本的Tomcat和Web应用程序配置到用于集群、JDBC连接、日志和其他功能的高级技术,这些内容将帮助读者高效地管理和执行Tomcat部署。
主要内容
·在Windows和UNIX/Linux系统上安装JVM和Tomcat的方法:
·打包和部署Web应用程序的步骤:
·配置Tomcat的内部HTTP协议栈,包括新的APR和NIO连接器:
·使甩ApaclleWeb服务器或MicrosoftIIS作为前端Web服务器来部署Tomcat的方法:
·负载均衡和大量Tomcat服务器的集群:
·在虚拟主机环境下安装Tomcat的方法:
·加载部署在Tomcat中的测试Web应用程序的方法:
·使用内部的维护统计功能实时监控Tomcat服务器的方法:
·提供Web应用程序的扩展性和高可用性的技术:
·提供Tomcat6的性能技巧和最佳实践。
目录第1章ApacheTomcat
1.1谦逊的开始:Apache项目
1.2Apache软件基金会
1.3Tomcat
1.3.1分发Tomcat:Apache的许可证
1.3.2与其他许可证的比较
1.4蓝图:JavaEE
1.4.1JavaAPI
1.4.2JavaEEAPI
1.4.3JavaEE应用服务
1.4.4向标准化看齐,在实践中竞争
1.4.5Tomcat和应用服务器
1.5Tomcat和Web服务器
1.6本章小结
第2章Web的应用:Servlet、JSP及其他
2.1Web应用简史
2.1.1CGI脚本:第一个动态文本机制
2.1.2Java服务器端:Servlet
2.1.3JavaServerPage
2.1.4JSP标签库
2.1.5JSPEL
2.1.6MVC架构
2.1.7使用合适的Web技术
2.2Web应用的创建和分类
2.3本章小结
第3章Tomcat安装
3.1安装Java虚拟机
3.1.1在Windows上安装JVM
3.1.2在Linux上安装JVM
3.2安装Tomcat
3.2.1选择安装类别
3.2.2检验下载文件
3.2.3Windows上安装Tomcat
3.2.4在Windows下使用ZIP文件安装Tomcat
3.2.5在Linux下安装Tomcat
3.3使用源代码构建Tomcat
3.3.1是需要通过源代码构建Tomcat
3.3.2下载源代码版本
3.3.3subversion储存库
3.3.4构建一个源代码版本
3.4Tomcat安装目录
3.5安装APR
3.6疑难解答和详细说明
3.6.1类版本错误
3.6.2使用中的端口号
3.6.3运行多重实例
3.6.4代理阻塞通道
3.7本章小结
第4章Tomcat架构
4.1Tomcat目录概述
4.1.1bin目录
4.1.2conf目录
4.1.3lib目录
4.1.4logs目录
4.1.5temp目录
4.1.6webapps目录
4.1.7work目录
4.2Tomcat架构概述
4.2.1服务器
4.2.2服务
4.2.3Tomcat架构中的其余类
4.3连接器架构
4.3.1通信路径
4.3.2连接器协议
4.3.3选择连接器
4.4生命周期
4.4.1LifeCycle接口
4.4.2LifecycleListener接口
4.5根据架构进行配置
4.6本章小结
第5章Tomcat的基本配置
5.1Tomcat6配置的要点
5.2$CATALINA_HOME/conf中的文件
5.3服务器的基本配置
5.3.1通过server.xml默认文件配置服务器
5.3.2应用服务器配置下的Tomcat运行
5.3.3Web应用软件的Context定义
5.3.4默认context.xml文件
5.3.5认证和tomcat-users.xml文件
5.3.6默认的部署描述符——Web.xml
5.3.7servlet.xml、Context描述符和web.xml怎样协同工作
5.3.8严密的访问控制:catlina.policy
5.3.9Catalina.properties:建立在访问查询上的严密的访问控制
5.3.10引导配置
5.3.11配置和管理的不同点
5.4Tomcat6基于Web的GUI配置器
5.5本章小结
第6章高级Tomcat特性
6.1阀——截取Tomcat样式
6.2标准阀
6.3访问日志实现
6.4日志文件范围
6.5单点登录实现
6.5.1不使用单点登录阀实现多次登录
6.5.2配置单点登录阀
6.6Form认证器阀
6.7通过请求过滤器限制访问
6.7.1远程地址过滤器
6.7.2远程主机过滤器
6.7.3配置请求过滤器阀
6.7.4请求记录器阀
6.8持久会话
6.8.1持久会话的必要性
6.8.2配置PersistentSessionManager
6.9JNDI资源配置
6.9.1什么是JNDI
6.9.2Tomcat和JNDI
6.9.3典型的TomcatJNDI资源
6.9.4通过JNDI配置资源
6.9.5配置JDBCDataSource
6.9.6配置Mail会话
6.10配置Lifecyclelistener
6.10.1Tomcat组件发送的生命周期事件
6.10.2元素
6.10.3Tomcat6Lifecyclelistener配置
6.11本章小结
第7章Web应用程序配置
7.1理解Web应用程序内容
7.1.1公共资源
7.1.2Web-INF目录
7.1.3META-INF目录
7.2理解部署描述符
7.2.1Servlet2.3类型部署描述符
7.2.2Servlet2.4/2.5类型部署描述符
7.3本章小结
第8章Web应用程序管理
8.1Web应用程序示例
8.2Tomcat管理员程序
8.2.1允许访问管理员程序
8.2.2配置管理员程序
8.3Tomcat管理器:网络接口
8.3.1显示Tomcat服务器状态
8.3.2管理Web应用程序
8.3.3部署Web应用程序
8.4Tomcat管理器:用Ant管理应用程序
8.5Tomcat管理器:使用HTTP请求
8.5.1列出已部署的应用程序
8.5.2部署新的应用程序
8.5.3在Tomcat6中安装/部署应用程序
8.5.4远程部署新的应用程序
8.5.5从本地路径部署新的应用程序
8.5.6重载现有的应用程序
8.5.7列出可用的JNDI资源
8.5.8列出OS和JVM属性
8.5.9停止现有的应用程序
8.5.10启动被停止的应用程序
8.5.11反部署Web应用程序
8.5.12显示会话统计
8.5.13使用JMX代理Servlet查询Tomcat内核
8.5.14使用JMX代理Servlet设置Tomcat内核
8.6可能发生的错误
8.7安全性考虑
8.8Tomcat部署器
8.9本章小结
第9章类装载器
9.1类装载器概述
9.1.1标准的JavaSE类装载器
9.1.2关于类装载器的更多行为
9.1.3创建自定义类装载器
9.1.4为什么Tomcat需要自定义的类装载器
9.2安全性和类装载器
9.2.1类装载器委派
9.2.2核心类限制
9.2.3独立的类装载器命名空间
9.2.4SecurityManager
9.3Tomcat与类装载器
9.3.1系统类装载器
9.3.2EndorsedStandardsOverride机制
9.3.3通用类装载器
9.3.4Web应用程序类装载器
9.4动态类重载
9.5通用类装载器缺陷
9.5.1在不同的类装载器中分割包
9.5.2Singleton
9.5.3XML分析器
9.6本章小结
第10章HTTP连接器
10.1HTTP连接器
10.1.1Tomcat6HTTP/1.1连接器
10.1.2高级NIO连接器
10.1.3Comet异步IO支持
10.1.4本地APR连接器
10.2配置Tomcat支持CGI
10.3配置Tomcat以支持SSI
10.3.1配置Tomcat6SSIServlet
10.3.2配置Tomcat6SSI过滤器
10.4在代理服务器后运行Tomcat
10.5性能调整
10.5.1可调整的配置属性
10.5.2TCP/IP栈调整技巧
10.6前端Tomcat6和Web服务器
10.7本章小结
第11章Tomcat与ApacheHTTP服务器
11.1AJP连接器体系结构
11.1.1Apache的本地代码模块
11.1.2ApacheJServ协议
11.1.3AJP连接器
11.2ApacheWeb服务器前端或独立的Tomcat
11.3了解TomcatWorker
11.3.1多个TomcatWorker
11.3.2使用workers.properties文件配置Apache服务器与多个TomcatWorker协同工作
11.4连接Tomcat与Apache
11.4.1Tomcat6配置
11.4.2ApacheWeb服务器配置
11.4.3使用mod_jk模块
11.4.4使用mod_proxy模块
11.5为ApacheWeb服务器配置SSL
11.5.1为Apache配置mod_ssl
11.5.2测试启用SSL的Apache设置
11.5.3启用SSL的Apache-Tomcat设置
11.6Tomcat负载平衡与Apache
11.6.1更改Tomcat启动文件中的CATALINA_HOME
11.6.2设置不同的AJP连接器端口
11.6.3设置不同的服务器端口
11.6.4禁用默认的HTTP/1.1连接器
11.6.5在StandaloneEngine中设置jvmRoute
11.6.6注释CatalinaEngine
11.6.7httpd.conf中的指令
11.6.8workers.properties中的worker配置
11.7测试负载平衡器
11.7.1测试Sticky会话
11.7.2测试Round-Robin行为
11.7.3在不同的负载系数下测试
11.8本章小结
第12章Tomcat与IIS
12.1ISAPI插件的角色
12.2连接Tomcat和IIS
12.2.1检查Tomcat与IIS的安装
12.2.2配置JK连接器
12.2.3安装ISAPI插件
12.2.4配置Tomcatworker
12.2.5配置转发请求规则
12.2.6可选的URL重写规则配置
12.2.7为ISAPI插件升级Windows注册表
12.2.8IIS5独立模式(只针对IIS6)
12.2.9在IIS下创建虚拟目录
12.2.10添加作为IIS过滤器的ISAPI插件
12.2.11授权作为Web应用程序扩展的ISAPI插件(只针对IIS6)
12.2.12测试最后的设置
12.3故障解决技巧
12.4使用SSL
12.5IIS和Tomcat的可扩展架构
12.5.1分发Web和应用程序部署
12.5.2多个TomcatWorkers
12.5.3负载平衡的AJPWorker
12.6本章小结
第13章JDBC连接
13.1JDBC基础
13.1.1建立和终止RDBMS连接
13.1.2JDBC版本演化
13.1.3JDBC驱动类型
13.1.4数据库连接池
13.1.5连接池的问题
13.1.6Tomcat和JDBC演化
13.2Tomcat6中的JNDI模拟和连接池
13.3首选的配置:JNDI资源
13.3.1Resource标签
13.3.2继承JNDI资源配置
13.3.3测试JNDI资源配置
13.4可选的JDBC配置
13.5可选的连接池管理器
13.5.1关于c3p0池管理器
13.5.2部署c3p0池管理器
13.5.3无需JNDI查找获得JDBC连接
13.5.4使用c3p0测试对非JNDI池的访问
13.5.5使用JNDI映射获得连接
13.5.6使用Tomcat6JNDI-comp-atible查找测试c3p0
13.5.7部署第三方连接池
13.6本章小结
第14章Tomcat安全
14.1核查下载的Tomcat的完整性
14.1.1核查MD5摘要
14.1.2使用PGP签名来核查下载的文件
14.2确保Tomcat服务器安全安装
14.2.1去除默认的应用程序
14.2.2ROOT和tomcat-docs
14.2.3系统应用程序——manager和host-manager
14.2.4约束系统应用程序访问安全性
14.2.5删除JSP和Servlet的例子
14.2.6更改SHUTDOWN命令
14.3使用特殊账户运行Tomcat
14.3.1创建一个无特权的Tomcat用户
14.3.2使用Tomcat用户运行Tomcat
14.4确保文件系统安全
14.4.1Windows文件系统
14.4.2Linux文件系统
14.5确保Java虚拟机的安全
14.5.1SecurityManager概述
14.5.2使用Tomcat的SecurityManager
14.5.3推荐的SecurityManager练习
14.6确保Web应用程序的安全
14.6.1“认证”和“域”
14.6.2域安全性
14.7SSL加密
14.7.1JSSE
14.7.2使用SSL保护资源
14.8保证DefaultServlet的安全
14.8.1禁用目录列表
14.8.2禁用InvokerServlet、SSI和CGIGateway
14.9主机限制
14.10本章小结
第15章共享的Tomcat主机
15.1虚拟主机概念
15.2Apache中的虚拟主机
15.2.1实例部署方案
15.2.2Apache中基于IP的虚拟主机
15.2.3Apache中基于名称的虚拟主机
15.3Tomcat中的虚拟主机
15.3.1实例部署方案
15.3.2作为独立服务器的Tomcat
15.3.3使用Apache的Tomcat
15.3.4配置Apache
15.4TomcatHost-Manager应用程序
15.5虚拟主机问题:稳定性、安全和性能
15.6调整Tomcat中的虚拟主机设置
15.6.1为每个虚拟主机创建独立的JVM
15.6.2在TomcatJVM上设置内存资源限制
15.6.3使用JavaSecurityManager限制
15.7本章小结
第16章使用JMX监视和管理Tomcat
16.1管理需求
16.2关于JMX
16.2.1JMX体系结构
16.2.2工具层
16.2.3代理层
16.2.4分布式服务层
16.3JMX远程API
16.4MBean介绍
16.4.1标准MBean
16.4.2动态MBean
16.4.3模型MBean
16.4.4开放MBean
16.5JMX在Tomcat6中的可管理元素
16.5.1可管理的Tomcat6体系结构组件
16.5.2可管理的嵌入式组件
16.5.3可管理的运行时数据对象
16.5.4可管理的资源对象
16.6通过ManagerProxy访问Tomcat6的JMXSupport
16.6.1使用JMXProxy
16.6.2修改MBean属性
16.6.3使用jconsoleGUI监视Tomcat
16.6.4为远程监视配置Tomcat
16.7本章小结
第17章集群
17.1集群益处
17.1.1可扩展性与集群
17.1.2高可靠性的必要性
17.2集群基础
17.2.1主-备用拓扑模式
17.2.2故障转移行为模式
17.3Tomcat6集群模型
17.3.1负载平衡
17.3.2会话共享
17.4使用Tomcat6集群
17.4.1Tomcat6中的会话管理
17.4.2Cookie和现代浏览器的角色
17.4.3配置一个Tomcat6集群
17.4.4通用前端:通过Apachemod_jk使负载平衡
17.4.5准备使用不同的后端会话共享
17.4.6后端1:内存复制配置
17.4.7后端2:使用共享文件存储的永久会话管理器
17.4.8后端3:使用JDBC存储的永久会话管理器
17.4.9测试使用JDBC永久会话管理器后端的Tomcat集群
17.5集群的复杂性
17.5.1集群和性能
17.5.2集群和响应时间
17.5.3使用集群解决性能问题
17.6本章小结
第18章嵌入式Tomcat
18.1现代系统设计中嵌入式Tomcat的重要性
18.1.1典型地嵌入式应用程序
18.1.2使用嵌入式Tomcat开发
18.2本章小结
第19章日志
19.1从Tomcat5的变革
19.2log4j
19.2.1log4j体系结构
19.2.2log4j安装和配置
19.2.3log4j入门指南
19.2.4log4j高级用法
19.2.5log4j性能建议
19.3JULI
19.3.1Java日志体系结构
19.3.2JULI入门指南
19.4日志文件分析
19.5本章小结
第20章性能测试
20.1性能概念
20.1.1评估什么
20.1.2可扩展性和性能
20.1.3理解用户角度的性能
20.1.4评估性能
20.2JMeter
20.2.1安装和运行JMeter
20.2.2设计和理解使用JMeter的测试计划
20.2.3JMeter特性
20.2.4分布式负荷测试
20.2.5解释测试结果
20.3替代JMeter的工具
20.4性能测试后的事项
20.5本章小结
第21章性能调优
21.1性能调优的最佳实践
21.1.1步骤1:建立测试台
21.1.2步骤2:性能测试和确定基线
21.1.3步骤3:诊断性能瓶颈
21.2诊断Tomcat的性能问题
21.3Tomcat性能调优提示
21.3.1JVM的参数调优
21.3.2预编译JSP
21.3.3Tomcat配置调优
21.3.4适当的时候使用Web服务器的静态内容
21.4本章小结
附录ATomcat和集成开发环境
A.1Eclipse
A.1.1调试Eclipse中的远程Web应用程序
A.1.2使用SysdeoTomcat插件部署和调试本地Web应用程序
A.1.3使用Web工具平台部署和调试Web应用程序
A.1.4使用ApacheAnt和Eclipse管理Web应用程序部署
A.2NetBeans
A.2.1调试NetBeans中的远程Web应用程序
A.2.2调试NetBeans内的Web应用程序
A.3小结
附录BApacheAnt
B.1安装Ant
B.2Ant介绍
B.3Ant诀窍
B.3.1使用Ant创建Web应用程序
B.3.2编译JSP
B.3.3利用属性文件和命令行参数的可重用Ant脚本
B.3.4创建日志
B.3.5通过电子邮件创建通知
B.3.6Ant和源控制系统
B.3.7自动测试
B.4持续集成
B.5Ant任务参考
B.6小结
……