**Apache Tomcat** là một Java Servlet được phát triển bởi Apache Software Foundation (ASF). Tomcat thi hành các ứng dụng Java Servlet và JavaServer Pages (JSP) từ Sun Microsystems, và cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy để thực thi các chương trình lệnh viết bằng ngôn ngữ Java.

Tomcat không nên được hiểu nhầm với các máy chủ HTTP Apache - cái mà dùng để thực thi các câu lệnh viết bằng ngôn ngữ C trên máy chủ HTTP; có 2 máy chủ web được kết nối với nhau. Apache Tomcat cung cấp các công cụ cho việc cấu hình và quản lý, nhưng cũng có thể được cấu hình bởi việc soạn thảo các file cấu hình viết bằng XML.

Tình trạng phát triển
---------------------

Các thành viên của ASF và các tình nguyện viên riêng lẻ vẫn đang phát triển và duy trì Tomcat. Người dùng có thể truy cập miễn phí vào mã nguồn và các lớp nhị phân của Tomcat dưới sự cho phép của Apache. Phiên bản Tomcat đầu tiên được công bố là phiên bản 3.0.x (các phiên bản trước được Sun phát hành nội bộ, và không được phát hành rộng rãi ra ngoài). Phiên bản Tomcat 6.0.20 là sản phẩm cuối cùng của thế hệ phiên bản 6.0.x (một phần của bộ 2.5 servlet), vào năm 2009.

Thành phần
----------

Tomcat phiên bản 4.x xuất hiện bao gồm Jasper (một thiết kế lại của bộ công cụ JSP), Catalina (thiết kế lại của bộ Servlet) và Coyote (một trình kết nối HTTP).

### Catalina

Catalina chính là bộ servlet container của Tomcat. Catalina thực hiện các chi tiết kỹ thuật của Sun Microsystems' đối với servlet và các trang JavaServer (JSP). Người đã xây dựng lên Catalina là Craig McClanahan.

### Coyote

Coyote là bộ phận kết nối HTTP của Tomcat, có cung cấp giao thức HTTP 1.1 cho các máy chủ web hoặc các ứng dụng khác. Coyote nghe ngóng các kết nối đến nó trên cổng TCP được định sẵn trên máy chủ và sau đó trả lời các yêu cầu đến Tomcat để thực thi các yêu cầu và gửi lại trả lời cho máy trạm đã yêu cầu.

### Jasper

Jasper là công cụ JSP của Tomcat. Tomcat 5.x sử dụng Jasper 2, chính là một thực thi các trang JSP được chỉ rõ của Sun Microsystems. Jasper phân tích các file JSP để biên dịch chúng trong code Java như là các servlets (có thể được điều khiển bởi Catalina). Tại thời điểm thực thi, Jasper có khả năng tự động dò ra các file JSP và biên dịch chúng.

#### Jasper 2

Từ Jasper sang Jasper 2, có những đặc điểm quan trọng được thêm vào:

* Cụm các thư viện JSP dùng chung - Mỗi cụm đặt trong các file JSP được điều khiển bởi một lớp điều khiển các tag. Các đối tượng lớp điều khiển các cụm có thể được dùng chung hoặc tái sử dụng lại trong toàn bộ JSP servlet.
* Biên dịch JSP - Khi việc dịch lại sửa đổi Java code, các phiên bản cũ vẫn có hiệu lực cho yêu cầu máy chủ. Bản JSP servlet cũ nhất bị xóa đi một khi bản JSP servlet mới được biên dịch lại.
* Dịch lại JSP khi các trang có sự thay đổi - Các trang cso thể được chèn và bao gồm trong một file JSP tại thời điểm biên dịch. JSP sẽ không chỉ được tự động dịch lại với các sự thay đổi các file JSP mà còn bao gồm sự thay đổi trang.
* Trình biên dịch JDT Java - Jasper 2 có thể sử dụng trình biên dịch JDT Java là Eclipse thay cho Ant và javac.

Tham khảo
---------

1. ↑  "Apache Tomcat 6 Downloads". Apache Software Foundation. Truy cập ngày 11 tháng 3 năm 2008.
2. ↑  "Apache Tomcat -- Which Version Do I Want?". Apache Software Foundation. Truy cập ngày 22 tháng 1 năm 2007.

1. Cài đặt Apache Tomcat 7 trên Centos 5/RHEL 5