Giới thiệu về Tomcat
Tomcat là một máy chủ ứng dụng web mã nguồn mở, hỗ trợ thực thi các ứng dụng Java EE (trước đây gọi là Jakarta EE), đặc biệt là các ứng dụng Web dựa trên Servlet và JSP. Đây là môi trường phổ biến để phát triển và triển khai các ứng dụng web trong môi trường Java.
Tải và cài đặt Tomcat
- Trang chính thức: Apache Tomcat 8 Downloads
- Chọn bản Windows 64-bit (zip) để giải nén trực tiếp.
- Đảm bảo thư mục cài đặt không chứa ký tự tiếng Trung hoặc bất kỳ ký tự đặc biệt nào.
Cấu trúc thư mục chính của Tomcat
| Thư mục | Mô tả |
|---|---|
bin |
Dùng để khởi động, dừng Tomcat (các script như startup.bat, shutdown.bat) |
conf |
Lưu trữ các tệp cấu hình như server.xml, web.xml, logging.properties |
lib |
Chứa các thư viện JAR cần thiết cho Tomcat hoạt động |
logs |
Lưu trữ nhật ký hoạt động của Tomcat |
temp |
Chứa các tệp tạm thời sinh ra trong quá trình chạy |
webapps |
Địa điểm chính để triển khai các ứng dụng web – mỗi thư mục con ở đây được xem như một ứng dụng riêng biệt |
work |
Chứa các tệp đã biên dịch từ JSP và các dữ liệu làm việc khác |
Khởi động và dừng Tomcat
Khởi động: Chạy file startup.bat trong thư mục bin. Khi xuất hiện dòng thông báo Server startup in X ms, nghĩa là Tomcat đã khởi động thành công.
Dừng: Có ba cách an toàn để dừng Tomcat:
- Chạy
shutdown.battrongbin. - Ấn Ctrl+C hai lần trong cửa sổ lệnh đang chạy.
- Đóng cửa sổ lệnh trực tiếp (không khuyến nghị vì có thể gây lỗi).
Xử lý lỗi thường gặp khi khởi động
Thiếu biến môi trường Java
Hiện tượng: Cửa sổ đen nháy qua rất nhanh rồi tắt.
Nguyên nhân: Không cấu hình JAVA_HOME hoặc chưa thêm vào Path.
Giải pháp: Thiết lập biến hệ thống JAVA_HOME trỏ đến thư mục JDK, và thêm %JAVA_HOME%\bin vào biến Path.
Port 8080 bị chiếm dụng
Hiện tượng: Lỗi khởi động, cửa sổ DOS đóng ngay sau vài giây.
Giải pháp:
- Dùng lệnh:
netstat -ano | findstr "8080"để tìm PID của tiến trình chiếm port. - Mở Task Manager → Details → Tìm tiến trình theo PID → Kết thúc nhiệm vụ.
- Hoặc thay đổi port mặc định trong file
conf/server.xml:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Port mới phải nằm trong khoảng 1024–65535 và không trùng với các dịch vụ khác.
Hiển thị chữ tiếng Việt bị lỗi mã hóa
Nguyên nhân: Mã hóa mặc định của Tomcat (GBK) không khớp với mã hóa mặc định của Command Prompt (UTF-8 hoặc ASCII).
Giải pháp: Mở file conf/logging.properties, chỉnh sửa dòng sau:
java.util.logging.ConsoleHandler.encoding = GBK
Sau đó khởi động lại Tomcat.
Phương thức triển khai ứng dụng trên Tomcat
1. Triển khai qua thư mục webapps (đơn giản nhất)
Thực hiện như sau:
- Tạo thư mục
D:\myappvà thêm fileindex.htmlvới nội dung:
<h1>Xin chào Tomcat</h1>
- Copy toàn bộ thư mục
myappvàowebappscủa Tomcat. - Truy cập
http://localhost:8080/myapp/index.htmlbằng trình duyệt.
Ưu điểm: Hỗ trợ hot deployment – thay đổi nội dung file sẽ phản ánh ngay mà không cần khởi động lại.
Nhược điểm: Phải sao chép thủ công mỗi khi cập nhật.
2. Cấu hình qua server.xml (tìm hiểu)
Thêm đoạn cấu hình vào file conf/server.xml bên trong thẻ <Host>:
<Context path="/myapp" docBase="D:/myapp" />
Trong đó:
path: đường dẫn ảo (ví dụ:/myapp)docBase: đường dẫn thật đến thư mục ứng dụng
Điểm yếu: Cần khởi động lại Tomcat sau mỗi thay đổi. Rủi ro gây lỗi nếu cấu hình sai.
3. Triển khai độc lập qua XML (phát triển thực tế)
Tạo file myapp.xml trong thư mục conf/Catalina/localhost/:
<Context docBase="D:/myapp" />
Lưu ý:
- Tên file XML phải trùng với đường dẫn ảo.
- Không cần khai báo
path– nó được lấy từ tên file.
Sử dụng IntelliJ IDEA để phát triển với Tomcat
1. Cấu hình Tomcat trong IDEA
- Tạo một project rỗng.
- Vào File → Settings → Build, Execution, Deployment → Application Servers.
- Thêm Tomcat mới, chọn đường dẫn tới thư mục cài đặt Tomcat.
- Áp dụng và lưu.
2. Tạo dự án Web
Khi tạo project, chọn template:
- Web Application (tự động tạo file
web.xml). - Application Server: Chọn Tomcat.
- JDK: Chọn phiên bản JDK đã cài.
Quan trọng: Thư mục WEB-INF là khu vực an toàn – không thể truy cập trực tiếp từ trình duyệt.
3. Triển khai ứng dụng
Trong phần Run Configuration:
Name: Tên dịch vụ Tomcat.Application server: Chọn Tomcat.Open browser: Cấu hình trình duyệt mở tự động.On 'Update' action: Chọn Update resources để cập nhật khi code thay đổi.Tomcat Server Settings: Thay đổi port nếu cần.
4. Cấu hình hot deployment
Trong cấu hình Run, bật tùy chọn Update resources automatically. Khi thay đổi file HTML/JSP, Tomcat sẽ tự cập nhật mà không cần restart.
Lưu ý: Hot deployment chỉ áp dụng cho tài nguyên tĩnh (HTML, CSS, JS). Với code Java, cần recompile và rebuild.
Thực hành và mẹo quan trọng
- Thư mục
WEB-INFkhông nên chứa các file HTML/JSP để tránh rò rỉ thông tin. - Luôn kiểm tra
server.xmlkhi có lỗi khởi động. - Ưu tiên sử dụng phương thức XML riêng biệt để tránh can thiệp vào cấu hình gốc.
- Tránh dùng port mặc định nếu chạy nhiều instance Tomcat trên cùng một máy.