Nói ngắn gọn, Servlet là các chương trình Java chạy trên máy chủ web và đóng vai trò lớp trung gian giữa yêu cầu đến từ client HTTP và cơ sở dữ liệu hoặc ứng dụng trên máy chủ HTTP. Trong khi JSP đơn giản là một tài liệu văn bản chứa hai loại văn bản: văn bản tĩnh được định nghĩa trước và văn bản động được hiển thị sau khi nhận phản hồi từ máy chủ.
Dưới đây là các khác biệt quan trọng giữa Servlet và JSP:
| STT | Tiêu chí | Servlet | JSP |
|---|---|---|---|
| 1 | Triển khai | Servlet được phát triển bằng ngôn ngữ Java. | JSP chủ yếu được viết bằng ngôn ngữ HTML mặc dù code Java cũng có thể viết trên đó nhưng cần JSTL hoặc ngôn ngữ khác. |
| 2 | MVC | Trong mô hình MVC, Servlet đóng vai trò controller: nhận yêu cầu, xử lý và gửi phản hồi. | JSP đóng vai trò view để hiển thị phản hồi được trả về bởi Servlet. |
| 3 | Loại yêu cầu | Servlet có thể chấp nhận và xử lý mọi loại yêu cầu giao thức. | JSP chỉ tương thích với yêu cầu HTTP. |
| 4 | Quản lý Session | Trong Servlet, quản lý session mặc định không được bật, người dùng phải bật rõ ràng. | Trong JSP, quản lý session được bật tự động. |
| 5 | Hiệu năng | Servlet nhanh hơn JSP. | JSP chậm hơn Servlet vì trước tiên phải dịch JSP sang code Java rồi mới biên dịch. |
| 6 | Phản ánh sửa đổi | Sửa đổi Servlet tốn thời gian vì bao gồm reload, recompile và restart server khi thay đổi code. | Sửa đổi JSP nhanh chóng, chỉ cần nhấn refresh để thay đổi code có hiệu lực. |
Ví dụ Servlet
JavaTester.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class JavaTester extends HttpServlet {
private String message;
public void init() throws ServletException {
// Khởi tạo cần thiết
message = "Hello World";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Thiết lập kiểu nội dung phản hồi
response.setContentType("text/html");
// Logic thực tế ở đây.
PrintWriter out = response.getWriter();
out.println(message);
}
}
Kết quả
Hello World