tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "budi" <>
Subject [book] How Tomcat Works
Date Wed, 11 Jun 2003 12:10:06 GMT

Dear Tomcat Developers,
I've been using Tomcat for years. It interested me so much that last year I spent three months
reading the source code. I learned a lot, not only about how the servlet container works but
also how to design Java applications in general. I particularly liked the idea of valves and
pipelines, as well as the hierarchical containers. Knowing how Tomcat works enables one to
write better servlets too, IMO.

I decided to share what I have learned in a book titled "How Tomcat Works". This is supposed
to be a tutorial, teaching the reader how the servlet container works and how to build it.
It is a big system and at first I had problems explaining it, considering some readers might
not have a clue as to how Tomcat ticks. Finally, I decided to build simple implementations
of some interfaces and explain the simplified components. In fact, I started by explaining
how the class works in a simple Web server (Chapter 1), followed by a simple
servlet container that can't do anything other than run a basic servlet (Chapter 2). Each
chapter comes with an application and each chapter's application is built upon the previous
chapter's application. From Chapter 1, the application evolves into the full-fledged Catalina
4.1.12. This book will be around 500 pages thick and has 18 chapters. 

Having said that, I realize I'm no expert. I wish I knew how Tomcat works better. The reason
for writing to this mailing list is to ask for favor from you all, the very people who really
understand how Tomcat works. I hope you could take some time to read the chapters that I made
available for download from my web site I'm sure with your feedback
and comments this book will be much better than the current form, and in the end could benefit
Tomcat users and anyone who has interest in Tomcat.

Millions of thanks, 

Budi Kurniawan

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message