Bảng so sánh
| Tiêu chí | Applet | Servlet |
|---|---|---|
| Môi trường thực thi | Client-side (trình duyệt web) | Server-side (web container/server) |
| Gói cha | java.applet.*, java.awt.* | javax.servlet.*, javax.servlet.http.* |
| Vòng đời phương thức | init(), start(), paint(), stop(), destroy() | init(), service(), destroy() |
| Giao diện người dùng | Cần AWT/Swing | Không cần UI (xử lý request/response) |
| Băng thông | Lớn (tải code/applet về client) | Nhỏ (chỉ truyền dữ liệu) |
| Bảo mật | Rủi ro cao (chạy trên máy client) | An toàn hơn (chạy dưới security manager server) |
| Trạng thái hiện tại | Đã deprecated (Java 9), bị loại bỏ (Java 11+) | Vẫn phổ biến, chuẩn Jakarta EE |
Ví dụ Applet (chỉ mang tính lịch sử)
import java.applet.Applet;
import java.awt.Graphics;
public class AppletDemo extends Applet {
@Override
public void paint(Graphics g) {
g.drawString("AppletDemo", 20, 20);
}
}
Ví dụ Servlet (HttpServlet)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletDemo extends HttpServlet {
private String message;
@Override
public void init() throws ServletException {
message = "Servlet Demo";
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println(message);
}
}
Lưu ý: Applet đã lỗi thời, không nên dùng cho dự án mới. Thay thế bằng JavaScript/HTML5 hoặc Java Web Start (cũng đã deprecated). Servlet là nền tảng của các framework web hiện đại (Spring MVC, Jakarta Faces, v.v.).