新闻资讯
看你所看,想你所想

深入剖析Tomcat

《深入剖析Tomcat》是2011年12月机械工业年定星印出版社华章公司出版的图书,作者是Budi Kurniawan和Paul Deck。

  • 书名 深入剖析Tomcat
  • 作者 Budi Kurniawan、Paul Deck
  • 译者 曹旭东
  • 出版社 机械工业出版社华章公司
  • 出版时间 2011年12月31日

简介

  本书深入剖析Tomcat 4和Tomcat 密值装见比汉据片破5中的每个组件,国接参济左球改殖衣有并揭示其内部工雅桨讲章作原理。通过学习本书,你将可以自行开发Tomcat组件,或者扩展已有的组件。 Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应墓拳颈战用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模玉调增艺氢因块。这些功能模块构成了Tomcat的核心结构。本书从最来自基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐只弃步实现自己的Web服务器。

作者简介

 360百科 Budi Kurni证础宜awan是《Java for Web With Servlets, JSP and EJB》的作者伤宪任,同时也是一位IT咨询师,主要研究方向包括互联网但热略宜与面向对象程序设计。除了其他一些计算机图书,他已经在10多种出版物上发表了约100篇文章,溶上河压其中包括一些享有盛誉的Java杂志讲输艺声例间单阳击,如《Java-net械间过照轻盾沿输们答企》、《JavaPro》、《JavaWorld》突括司办岩知王等雨等。Budi也是Brainysoftware-com的应用程序File Upload Bean的作者,在世界范围内很多公司都获得授权并使用该应用程序。

  Paul Deck是一个有15多年经验的IT严钢材袁苦局石架构师,参与了很多项目的开发,这些项目遍布在美国、加拿大、中国和澳大利亚。他喜欢旅行,对网络、互联网编程、设计模式和用户界面交互设计非常感兴趣。

目录

  来自译者序

  前 言

  第1章 一个简单的Web服务器1

  1.1 HTTP1

  1.1.1 HTTP请求1

  1.1.2 HTTP响应2

  1.2 Socket类3

  1.3 应用程序染息督供多室环细思呢煤5

  1.3.1 HttpServer类5

  1.3.2 Request类8

  1.3.3 Response类10

  1.3.4 运行应用程序12

  1.4 小结13

  第2章 一个企炒乘简单的servlet容器14

  2.1 javax.servlet.Servlet接口360百科14

  2.2 应用程序 116

  2.2.1 HttpServer1类17

  2.2.2 Request类19

  2.2.3 Response类21

哪超  2.2.4 StaticResourceProcessor类23

艺火  2.2.5 servletProcessor1类24

  2.2.6 运行应用程序27

  2.3 应用程序227

  2.4 小结30

  第3章 拔欠墓连接器31

  3.1 StringManager类31

  3.2 应用程序33

  3.2.1 恋得其沉书朽跨启动应用程序35

  3.2.2 HttpConnector类36

  3.2.3 创建HttpRequest对象38

  3.2.4 创建HttpResponse对象49

  3.2.着适被发属守翻凯山反5 静态资源处理器和servle刑渐胡星量火换品预前向t处理器50

  3.2.6 运行应用程序50

  3.3 小结52

  第4章 Tomcat的默认连接器53

  4.1 HTTP 1.1的新特性54

  4.1围至损施说算没专面.1 持久连接54

  4.1.2 块编码54

介逐奏叶山极  4.1.3 状态码100的使用55

  4.源远消头屋左微2 Connector接愚循白儿讲阶口55

  4.3 HttpCo苦章面额念妈二号武nnector类56

 例屋案各敌国 4.3.1 创建服务器套接字56

  4.3.2 维护HttpProcesso甚雨婷饭厂r实例56

  4.鸡不课另况义祖仍源官3.3 提供HTTP请求服务57

  4.4 HttpProcessor类58

  4.5 Request对象61

  4.6 Resp杂概即关力onse对象62

  4.7 处理请求62

  4.7.1 解析连接65

  4.7.2 解析请求65

差跳复头机门  4.7.3 解析请求头65

  4.8 简单的Container应用程序66

  4.9 小结70

  第5章 servlet容器71

  5.1 Container接口71

  5.2 管道任务73

  5.2.1 Pipeline接口76

  5.2.2 Valve接口76

  5.2.3 ValveContext接口76

  5.2.4 Contained接口77

  5.3 Wrapper接口77

  5.4 Context接口78

  5.5 Wrapper应用程序78

  5.5.1 ex05.pyrmont.core.SimpleLoader类78

  5.5.2 ex05.pyrmont.core.SimplePipeline类79

  5.5.3 ex05.pyrmont.core.SimpleWrapper类79

  5.5.4 ex05.pyrmont.core.SimpleWrapperValve类80

  5.5.5 ex05.pyrmont.valves.ClientIPLoggerValve类81

  5.5.6 ex05.pyrmont.valves.HeaderLoggerValve类81

  5.5.7 ex05.pyrmont.startup.Bootstrap182

  5.5.8 运行应用程序84

  5.6 Context应用程序84

  5.6.1 ex05.pyrmont.core.SimpleContextValve类87

  5.6.2 ex05.pyrmont.core.SimpleContextMapper类87

  5.6.3 ex05.pyrmont.core.SimpleContext类89

  5.6.4 ex05.pyrmont.startup.Bootstrap289

  5.6.5 运行应用程序91

  5.7 小结92

  第6章 生命周期93

  6.1 Lifecycle接口93

  6.2 LifecycleEvent类94

  6.3 LifecycleListener接口94

  6.4 LifecycleSupport类95

  6.5 应用程序97

  6.5.1 ex06.pyrmont.core.SimpleContext类97

  6.5.2 ex06.pyrmont.core.SimpleContextLifecycleListener类100

  6.5.3 ex06.pyrmont.core.SimpleLoader类101

  6.5.4 ex06.pyrmont.core.SimplePipeline类101

  6.5.5 ex06.pyrmont.core.SimpleWrapper类101

  6.5.6 运行应用程序103

  6.6 小结104

  第7章 日志记录器105

  7.1 Logger接口105

  7.2 Tomcat的日志记录器106

  7.2.1 LoggerBase类106

  7.2.2 SystemOutLogger类107

  7.2.3 SystemErrLogger类107

  7.2.4 FileLogger类108

  7.3 应用程序111

  7.4 小结112

  第8章 载入器113

  8.1 Java的类载入器113

  8.2 Loader接口114

  8.3 Reloader接口116

  8.4 WebappLoader类116

  8.4.1 创建类载入器117

  8.4.2 设置仓库118

  8.4.3 设置类路径118

  8.4.4 设置访问权限118

  8.4.5 开启新线程执行类的重新载入118

  8.5 WebappClassLoader类120

  8.5.1 类缓存120

  8.5.2 载入类121

  8.5.3 应用程序121

  8.6 运行应用程序124

  8.7 小结124

  第9章 Session管理125

  9.1 Session对象126

  9.1.1 Session接口126

  9.1.2 StandardSession类127

  9.1.3 StandardSessionFacade类129

  9.2 Manager130

  9.2.1 Manager接口130

  9.2.2 ManagerBase类131

  9.2.3 StandardManager类132

  9.2.4 PersistentManagerBase类133

  9.2.5 PersistentManager类135

  9.2.6 DistributedManager类135

  9.3 存储器136

  9.3.1 StoreBase类137

  9.3.2 FileStore类138

  9.3.3 JDBCStore类139

  9.4 应用程序139

  9.4.1 Bootstrap类139

  9.4.2 SimpleWrapperValve类140

  9.4.3 运行应用程序141

  9.5 小结142

  第10章 安全性143

  10.1 领域143

  10.2 GenericPrincipal类144

  10.3 LoginConfig类145

  10.4 Authenticator接口145

  10.5 安装验证器阀146

  10.6 应用程序147

  10.6.1 ex10.pyrmont.core.SimpleContextConfig类147

  10.6.2 ex10.pyrmont.realm.SimpleRealm类149

  10.6.3 ex10.pyrmont.realm.SimpleUserDatabaseRealm152

  10.6.4 ex10.pyrmont.startup.Bootstrap1类154

  10.6.5 ex10.pyrmont.startup.Bootstrap2类156

  10.6.6 运行应用程序158

  10.7 小结158

  第11章 StandardWrapper159

  11.1 方法调用序列159

  11.2 SingleThreadModel160

  11.3 StandardWrapper161

  11.3.1 分配servlet实例162

  11.3.2 载入servlet类164

  11.3.3 ServletConfig对象167

  11.3.4 servlet容器的父子关系169

  11.4 StandardWrapperFacade类170

  11.5 StandardWrapperValve类171

  11.6 FilterDef类172

  11.7 ApplicationFilterConfig类174

  11.8 ApplicationFilterChain类175

  11.9 应用程序175

  11.10 小结177

  第12章 StandardContext类178

  12.1 StandardContext的配置178

  12.1.1 StandardContext类的构造函数179

  12.1.2 启动StandardContext实例179

  12.1.3 invoke()方法183

  12.2 StandardContextMapper类184

  12.3 对重载的支持187

  12.4 backgroundProcess()方法188

  12.5 小结190

  第13章 Host和Engine191

  13.1 Host接口191

  13.2 StandardHost类193

  13.3 StandardHostMapper类195

  13.4 StandardHostValve类196

  13.5 为什么必须要有一个Host容器197

  13.6 应用程序1198

  13.7 Engine接口199

  13.8 StandardEngine类201

  13.9 StandardEngineValve类201

  13.10 应用程序2202

  13.11 小结203

  第14章 服务器组件和服务组件204

  14.1 服务器组件204

  14.2 StandardServer类206

  14.2.1 initialize()方法206

  14.2.2 start()方法207

  14.2.3 stop()方法207

  14.2.4 await()方法208

  14.3 Service接口209

  14.4 StandardService类211

  14.4.1 connector和container211

  14.4.2 与生命周期有关的方法213

  14.5 应用程序215

  14.5.1 Bootstrap类215

  14.5.2 Stopper类217

  14.5.3 运行应用程序218

  14.6 小结219

  第15章 Digester库220

  15.1 Digester库221

  15.1.1 Digester类221

  15.1.2 Digester库示例1225

  15.1.3 Digester库示例2227

  15.1.4 Rule类230

  15.1.5 Digester库示例3:使用RuleSet232

  15.2 ContextConfig类234

  15.2.1 defaultConfig()方法236

  15.2.2 applicationConfig()方法238

  15.2.3 创建Web Digester239

  15.3 应用程序243

  15.4 小结244

  第16章 关闭钩子245

  16.1 关闭钩子的例子246

  16.2 Tomcat中的关闭钩子250

  16.3 小结250

  第17章 启动Tomcat251

  17.1 Catalina类251

  17.1.1 start()方法253

  17.1.2 stop()方法256

  17.1.3 启动Digester对象256

  17.1.4 关闭Digester对象258

  17.2 Bootstrap类259

  17.3 在Windows平台上运行Tomcat264

  17.3.1 如何编写批处理文件264

  17.3.2 catalina.bat批处理文件267

  17.3.3 在Windows平台上启动Tomcat276

  17.3.4 在Windows平台上关闭Tomcat277

  17.4 在Linux平台上运行Tomcat278

  17.4.1 如何编写UNIX/Linux Shell脚本278

  17.4.2 catalina-sh脚本283

  17.4.3 在UNIX/Linux平台上启动Tomcat288

  17.4.4 在UNIX/Linux平台上关闭Tomcat289

  17.5 小结290

  第18章 部署器291

  18.1 部署一个Web应用程序291

  18.1.1 部署一个描述符294

  18.1.2 部署一个WAR文件295

  18.1.3 部署一个目录297

  18.1.4 动态部署297

  18.2 Deploy接口299

  18.3 StandardHostDeployer类302

  18.3.1 安装一个描述符303

  18.3.2 安装一个WAR文件或目录304

  18.3.3 启动Context实例305

  18.3.4 停止一个Context实例306

  18.4 小结306

  第19章 Manager应用程序的servlet类307

  19.1 使用Manager应用程序307

  19.2 Containerservlet接口309

  19.3 初始化ManagerServlet309

  19.4 列出已经部署的Web应用程序311

  19.5 启动Web应用程序312

  19.6 关闭Web应用程序313

  19.7 小结314

  第20章 基于JMX的管理315

  20.1 JMX简介315

  20.2 JMX API316

  20.2.1 MBeanServer类316

  20.2.2 ObjectName类317

  20.3 标准MBean318

  20.4 模型MBean321

  20.4.1 MBeanInfo接口与ModelMBeanInfo接口322

  20.4.2 ModelMBean示例323

  20.5 Commons Modeler库326

  20.5.1 MBean描述符327

  20.5.2 mbean元素示例328

  20.5.3 自己编写一个模型 MBean类329

  20.5.4 Registry类329

  20.5.5 ManagedBean329

  20.5.6 BaseModelMBean329

  20.5.7 使用Modeler库API330

  20.6 Catalian中的MBean332

  20.6.1 ClassNameMBean类333

  20.6.2 StandardServerMBean类333

  20.6.3 MBeanFactory类334

  20.6.4 MBeanUtil335

  20.7 创建Catalina的MBean335

  20.8 应用程序339

  20.9 小结342

转载请注明出处安可林文章网 » 深入剖析Tomcat

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com