Do mã trang JSP thi thực thi đều được biên dịch ra servlet
cho nên tất cả những gì servlet làm được cũng đồng nghĩa với trang JSP làm được.
Viết trang JSP đôi khi đơn giản hơn trang servlet vì không cần phải qua bước đăng ký
và biên dịch thủ công.
JSP có thể trộn lẫn mã java với các thẻ HTML nên việc
thiết kế trang JSP thường đơn giản và dễ bổ sung hơn so với servlet. Tuy nhiên đây
nâng cấp ứng dụng Web với hàng trăm trang JSP sẽ rất khó khăn. Trong quá trình phát triển ứng dụng Web theo nhóm, việc trộn lẫn mã Java và HTML trong trang JSP cho thấy không hiệu quả. Khó có thể tách rời giữa công việc viết mã cho ứng dụng (thường
là vai trò của lập trình viên – programmer) và nhóm xây dựng giao diện (nhóm thiết kế
Web – Web designer). Mã trang JSP ở dạng thuần văn bản nên thường không che được mã nguồn của logic chương trình.
Với servlet tuy phải biên dịch và đăng ký thủ công với
trình chủ nhưng bù lại tính bảo mật cao hơn. Ta chỉ cần cung cấp cho trình chủ Web Server bản servlet nhị phân ( file .class ) đã qua bước biên dịch mà không cần đến mã nguồn của servlet ban đầu. Mặt khác, các servlet có thể tương tác liên hoàn với nhau để tạo nên những kết xuất tuỳ biến và đa dạng trước khi trả kết quả về cho trình khách. Servlet có thể phân rã các đơn thể của dự án và phát triển độc lập nhau như các thành
phần riêng biệt để ráp lại trong một tổng thể chung. Mặc dù vậy, việc kết xuất trong servlet thường dựa vào phương thức print() hoặc println() nên việc kết xuất phụ thuộc
vào lập trình viên với hàng loạt các lệnh print() và println() rất khó quản lý.
Việc quyết định sử dụng trang JSP, Servlet hay kết hợp cả
hai là tùy vào từng dự án và mục đích của chương trình cần phát triển. Thông thường đối với những dự án nhỏ, yêu cầu thời gian nhanh, JSP là lựa chọn thích hợp nhất. Đối
với những dự án cần sự độc lập và chỉ thiên về xử lý ta nên sử dụng servlet. Trường
hợp dự án lớn ta nên kết hợp cả servlet và JSP. Mô hình kết hợp tốt nhất giữa servlet và JSP thường được gọi là MCV (Model – View – Controler) trong đó servlet đóng vai
trò trung tâm điều khiển (controler) đưa ra quyết định xử lý, JSP đóng vai trò thể hiện
giao diện hay hiển thị dữ liệu đã xử lý (View). Quy trình tính toán logic của ứng dụng được giao lại cho các thành phần JavaBean hay EJB.