Budi Kurniawan,Paul Deck 著,曹旭東 譯
《深入剖析Tomcat》深入剖析Tomcat4和Tomcat5中的每個組件,并揭示其內部工作原理。通過學習本書,你將可以自行開發(fā)Tomcat組件,或者擴展已有的組件。Tomcat是目前比較流行的Web服務器之一。作為一個開源和小型的輕量級應用服務器,Tomcat易于使用,便于部署,但Tomcat本身是一個非常復雜的系統(tǒng),包含了很多功能模塊。這些功能模塊構成了Tomcat的核心結構?!渡钊肫饰鯰omcat》從最基本的HTTP請求開始,直至使用JMX技術管理Tomcat中的應用程序,逐一剖析Tomcat的基本功能模塊,并配以示例代碼,使讀者可以逐步實現(xiàn)自己的Web服務器。
Budi Kurniawan是《Java for Web With Servlets, JSP and EJB》的作者,同時也是一位IT咨詢師,主要研究方向包括互聯(lián)網(wǎng)與面向對象程序設計。除了其他一些計算機圖書,他已經(jīng)在10多種出版物上發(fā)表了約100篇文章,其中包括一些享有盛譽的Java雜志,如《Java.net》、《JavaPro》、《JavaWorld》等。Budi也是Brainysoftware.com的應用程序File Upload Bean的作者,在世界范圍內很多公司都獲得授權并使用該應用程序。
Paul Deck是一個有15多年經(jīng)驗的IT架構師,參與了很多項目的開發(fā),這些項目遍布在美國、加拿大、中國和澳大利亞。他喜歡旅行,對網(wǎng)絡、互聯(lián)網(wǎng)編程、設計模式和用戶界面交互設計非常感興趣。
譯者序
前言
第1章 一個簡單的Web服務器
1.1 HTTP
1.1.1 HTTP請求
1.1.2 HTTP響應
1.2 Socket類
1.3 應用程序
1.3.1 HttpServer類
1.3.2 Request類
1.3.3 Response類
1.3.4 運行應用程序
1.4 小結
第2章 一個簡單的servlet容器
2.1 javax.servlet.Servlet接口
2.2 應用程序
2.2.1 HttpServer1類
2.2.2 Request類
2.2.3 Response類
2.2.4 StaticResourceProcessor類
2.2.5 servletProcessor1類
2.2.6 運行應用程序
2.3 應用程序
2.4 小結
第3章 連接器
3.1 StringManager類
3.2 應用程序
3.2.1 啟動應用程序
3.2.2 HttpConnector類
3.2.3 創(chuàng)建HttpRequest對象
3.2.4 創(chuàng)建HttpResponse對象
3.2.5 靜態(tài)資源處理器和servlet處理器
3.2.6 運行應用程序
3.3 小結
第4章 Tomcat的默認連接器
4.1 HTTP 1.1的新特性
4.1.1 持久連接
4.1.2 塊編碼
4.1.3 狀態(tài)碼100的使用
4.2 Connector接口
4.3 HttpConnector類
4.3.1 創(chuàng)建服務器套接字
4.3.2 維護HttpProcessor實例
4.3.3 提供HTTP請求服務
4.4 HttpProcessor類
4.5 Request對象
4.6 Response對象
4.7 處理請求
4.7.1 解析連接
4.7.2 解析請求
4.7.3 解析請求頭
4.8 簡單的Container應用程序
4.9 小結
第5章 servlet容器
5.1 Container接口
5.2 管道任務
5.2.1 Pipeline接口
5.2.2 Valve接口
5.2.3 ValveContext接口
5.2.4 Contained接口
5.3 Wrapper接口
5.4 Context接口
5.5 Wrapper應用程序
5.5.1 ex05.pyrmont.core.SimpleLoader類
5.5.2 ex05.pyrmont.core.SimplePipeline類
5.5.3 ex05.pyrmont.core.SimpleWrapper類
5.5.4 ex05.pyrmont.core.SimpleWrapperValve類
5.5.5 ex05.pyrmont.valves.ClientIPLoggerValve類
5.5.6 ex05.pyrmont.valves.HeaderLoggerValve類
5.5.7 ex05.pyrmont.startup.Bootstrap
5.5.8 運行應用程序
5.6 Context應用程序
5.6.1 ex05.pyrmont.core.SimpleContextValve類
5.6.2 ex05.pyrmont.core.SimpleContextMapper類
5.6.3 ex05.pyrmont.core.SimpleContext類
5.6.4 ex05.pyrmont.startup.Bootstrap
5.6.5 運行應用程序
5.7 小結
第6章 生命周期
6.1 Lifecycle接口
6.2 LifecycleEvent類
6.3 LifecycleListener接口
6.4 LifecycleSupport類
6.5 應用程序
6.5.1 ex06.pyrmont.core.SimpleContext類
6.5.2 ex06.pyrmont.core.SimpleContextLifecycleListener類
6.5.3 ex06.pyrmont.core.SimpleLoader類
6.5.4 ex06.pyrmont.core.SimplePipeline類
6.5.5 ex06.pyrmont.core.SimpleWrapper類
6.5.6 運行應用程序
6.6 小結
第7章 日志記錄器
7.1 Logger接口
7.2 Tomcat的日志記錄器
7.2.1 LoggerBase類
7.2.2 SystemOutLogger類
7.2.3 SystemErrLogger類
7.2.4 FileLogger類
7.3 應用程序
7.4 小結
第8章 載入器
8.1 Java的類載入器
8.2 Loader接口
8.3 Reloader接口
8.4 WebappLoader類
8.4.1 創(chuàng)建類載入器
8.4.2 設置倉庫
8.4.3 設置類路徑
8.4.4 設置訪問權限
8.4.5 開啟新線程執(zhí)行類的重新載入
8.5 WebappClassLoader類
8.5.1 類緩存
8.5.2 載入類
8.5.3 應用程序
8.6 運行應用程序
8.7 小結
第9章 Session管理
9.1 Session對象
9.1.1 Session接口
9.1.2 StandardSession類
9.1.3 StandardSessionFacade類
9.2 Manager
9.2.1 Manager接口
9.2.2 ManagerBase類
9.2.3 StandardManager類
9.2.4 PersistentManagerBase類
9.2.5 PersistentManager類
9.2.6 DistributedManager類
9.3 存儲器
9.3.1 StoreBase類
9.3.2 FileStore類
9.3.3 JDBCStore類
9.4 應用程序
9.4.1 Bootstrap類
9.4.2 SimpleWrapperValve類
9.4.3 運行應用程序
9.5 小結
第10章 安全性
10.1 領域
10.2 GenericPrincipal類
10.3 LoginConfig類
10.4 Authenticator接口
10.5 安裝驗證器閥
10.6 應用程序
10.6.1 ex10.pyrmont.core.SimpleContextConfig類
10.6.2 ex10.pyrmont.realm.SimpleRealm類
10.6.3 ex10.pyrmont.realm.SimpleUserDatabaseRealm
10.6.4 ex10.pyrmont.startup.Bootstrap1類
10.6.5 ex10.pyrmont.startup.Bootstrap2類
10.6.6 運行應用程序
10.7 小結
第11章 StandardWrapper
11.1 方法調用序列
11.2 SingleThreadModel
11.3 StandardWrapper
11.3.1 分配servlet實例
11.3.2 載入servlet類
11.3.3 ServletConfig對象
11.3.4 servlet容器的父子關系
11.4 StandardWrapperFacade類
11.5 StandardWrapperValve類
11.6 FilterDef類
11.7 ApplicationFilterConfig類
11.8 ApplicationFilterChain類
11.9 應用程序
11.10 小結
第12章 StandardContext類
12.1 StandardContext的配置
12.1.1 StandardContext類的構造函數(shù)
12.1.2 啟動StandardContext實例
12.1.3 invoke()方法
12.2 StandardContextMapper類
12.3 對重載的支持
12.4 backgroundProcess()方法
12.5 小結
第13章 Host和Engine
13.1 Host接口
13.2 StandardHost類
13.3 StandardHostMapper類
13.4 StandardHostValve類
13.5 為什么必須要有一個Host容器
13.6 應用程序1
13.7 Engine接口
13.8 StandardEngine類
13.9 StandardEngineValve類
13.10 應用程序2
13.11 小結
第14章 服務器組件和服務組件
14.1 服務器組件
14.2 StandardServer類
14.2.1 initialize()方法
14.2.2 start()方法
14.2.3 stop()方法
14.2.4 await()方法
14.3 Service接口
14.4 StandardService類
14.4.1 connector和container
14.4.2 與生命周期有關的方法
14.5 應用程序
14.5.1 Bootstrap類
14.5.2 Stopper類
14.5.3 運行應用程序
14.6 小結
第15章 Digester庫
15.1 Digester庫
15.1.1 Digester類
15.1.2 Digester庫示例1
15.1.3 Digester庫示例2
15.1.4 Rule類
15.1.5 Digester庫示例3:使用RuleSet
15.2 ContextConfig類
15.2.1 defaultConfig()方法
15.2.2 applicationConfig()方法
15.2.3 創(chuàng)建Web Digester
15.3 應用程序
15.4 小結
第16章 關閉鉤子
16.1 關閉鉤子的例子
16.2 Tomcat中的關閉鉤子
16.3 小結
第17章 啟動Tomcat
17.1 Catalina類
17.1.1 start()方法
17.1.2 stop()方法
17.1.3 啟動Digester對象
17.1.4 關閉Digester對象
17.2 Bootstrap類
17.3 在Windows平臺上運行Tomcat
17.3.1 如何編寫批處理文件
17.3.2 catalina.bat批處理文件
17.3.3 在Windows平臺上啟動Tomcat
17.3.4 在Windows平臺上關閉Tomcat
17.4 在Linux平臺上運行Tomcat
17.4.1 如何編寫UNIX/Linux Shell腳本
17.4.2 catalina.sh腳本
17.4.3 在UNIX/Linux平臺上啟動Tomcat
17.4.4 在UNIX/Linux平臺上關閉Tomcat
17.5 小結
第18章 部署器
18.1 部署一個Web應用程序
18.1.1 部署一個描述符
18.1.2 部署一個WAR文件
18.1.3 部署一個目錄
18.1.4 動態(tài)部署
18.2 Deploy接口
18.3 StandardHostDeployer類
18.3.1 安裝一個描述符
18.3.2 安裝一個WAR文件或目錄
18.3.3 啟動Context實例
18.3.4 停止一個Context實例
18.4 小結
第19章 Manager應用程序的servlet類
19.1 使用Manager應用程序
19.2 Containerservlet接口
19.3 初始化ManagerServlet
19.4 列出已經(jīng)部署的Web應用程序
19.5 啟動Web應用程序
19.6 關閉Web應用程序
19.7 小結
第20章 基于JMX的管理
20.1 JMX簡介
20.2 JMX API
20.2.1 MBeanServer類
20.2.2 ObjectName類
20.3 標準MBean
20.4 模型MBean
20.4.1 MBeanInfo接口與ModelMBeanInfo接口
20.4.2 ModelMBean示例
20.5 Commons Modeler庫
20.5.1 MBean描述符
20.5.2 mbean元素示例
20.5.3 自己編寫一個模型 MBean類
20.5.4 Registry類
20.5.5 ManagedBean
20.5.6 BaseModelMBean
20.5.7 使用Modeler庫API
20.6 Catalian中的MBean
20.6.1 ClassNameMBean類
20.6.2 StandardServerMBean類
20.6.3 MBeanFactory類
20.6.4 MBeanUtil
20.7 創(chuàng)建Catalina的MBean
20.8 應用程序
20.9 小結
更多建議: